簡體   English   中英

合並 pandas dataframe 最后一行中的一些列

[英]Combine some columns in last row of a pandas dataframe

編輯:我了解如何獲取實際值,但我想知道如何將這兩個總和的 append 一行與現有的 df 相加?

我有一個 dataframe score_card 看起來像:

15min_color 15min_high 15min_price 30min_color 30min_high 30min_price
1 1 -1 1 -1 1
1 -1 1 1 1 1
-1 1 -1 1 1 1
-1 1 -1 1 -1 1

現在我想添加一行總結所有 15 分鍾的數字(前 3 列)和 30 分鍾的數字等等(實際的 df 更大)。 意味着我不想將各個列相加,而是將列的總和相加。 我要添加的行如下所示:

sum_15min_colour&15min_high&15min_price sum_30min_colour&30min_high&30min_price
0 8

請忽略 header,這只是為了澄清我打算做什么。 我假設涉及多索引,但我不知道如何將它應用於我現有的 df 以實現所需的 output。

另外,是否可以在整個表格的總和中添加一個列?

謝謝你的支持。

你可以這樣總結:

np.sum(df.filter(like='15').values), np.sum(df.filter(like='30').values)

0,8

groupby

可以采用可調用(思考函數)並在indexcolumns上使用它

df.groupby(lambda x: x.split('_')[0], axis=1).sum().sum()

15min    0
30min    8
dtype: int64
  • 它取決於軸。

簡單地說 - 這將軸 0 中的值相加:所以在你的情況下 - 列(它是垂直列中的所有值的總和)。

df.sum(axis = 0, skipna = True)

打印(df):

OUTPUT:

在此處輸入圖像描述

sum_column = df["col1"] + df["col2"]
df["col3"] = sum_column
print(df)

OUTPUT:

在此處輸入圖像描述


所以在你的情況下:

summed0Axis = df.sum(axis = 0, skipna = True)
sum_column = summed0Axis["15min_colour"] + summed0Axis["15min_high"] + summed0Axis["15min_price"]

print(sum_column)

更智能的選擇:

查找所有列,其中包括 15:

columnsWith15 = df.loc[:,df.columns.str.contains("15").sum]
columnsWith30 = df.loc[:,df.columns.str.contains("30").sum]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM