【发布时间】:2021-06-11 17:01:52
【问题描述】:
我有两个数据框:df1 和 df2。我想使用聚合来获取两个数据帧中 s_values 之间的 mean 和 std,并将这些结果放入一个名为 new_df 的新数据帧中
在df1 =
statistics s_values
year
1999 cigarette use 100
1999 cellphone use 310
1999 internet use 101
1999 alcohol use 100
1999 soda use 215
在df 2 =
statistics s_values
year
1999 cigarette use 156
1999 cellphone use 198
1999 internet use 232
1999 alcohol use 243
1999 soda use 534
我试图得到的结果看起来像这样。
所需的输出new_df =
statistics difference mean std
year
1999 cigarette use 56 .. ..
1999 cellphone use 112 .. ..
1999 internet use 78 .. ..
1999 alcohol use 143 .. ..
1999 soda use 319 .. ..
我已经设法使用代码构建了一个数据框,其中的列具有不同的值
new_df = df1.assign(Value=(df1['s_values'] - df2['s_values].abs())
new_df.rename(columns={'s_values':'difference'}, inplace=True)
这给了我这个输出,但我不知道如何为聚合平均值和标准添加列
statistics difference
year
1999 cigarette use 56
1999 cellphone use 112
1999 internet use 78
1999 alcohol use 143
1999 soda use 319
非常感谢任何帮助
【问题讨论】:
-
所以当你说平均值或标准差时,它是针对每个统计值的。对吗?
-
均值和标准都是一个数字,您是否想要一列在整个列中包含一个值?你可以只调用 df[col].std() 和 df[col].mean() 来获取这些值......但我不明白你为什么想要一整列?
-
是的,我正在为每个统计信息在整个列中寻找一个数字。例如一种用于香烟的标准,一种用于手机的标准等。希望这是有道理的,很抱歉造成混乱
-
这就是我问的,你说的,这不是你想要的?您能否提供一个示例输出,以便更容易理解您想要什么?
标签: python pandas aggregates