[英]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
可以采用可調用(思考函數)並在index
或columns
上使用它
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.