使用聚合计算获取两个数据帧之间的均值和标准差
Use aggregate computations to obtain mean and std between two dataframes
我有两个数据框: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 = df1.merge(df2, on= ['Year', 'statistics'])
df['mean']=df[['difference_x', 'difference_y']].mean(axis=1)
df['std'] = df[['difference_x', 'difference_y']].std(axis=1)
如果您想要评论中提到的 groupby 解决方案,也可以试试这个
pd.concat([df1[['difference']], df2[['difference']]]).groupby(level=0).std()
pd.concat([df1[['difference']], df2[['difference']]]).groupby(level=0).mean()
我有两个数据框: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 = df1.merge(df2, on= ['Year', 'statistics'])
df['mean']=df[['difference_x', 'difference_y']].mean(axis=1)
df['std'] = df[['difference_x', 'difference_y']].std(axis=1)
如果您想要评论中提到的 groupby 解决方案,也可以试试这个
pd.concat([df1[['difference']], df2[['difference']]]).groupby(level=0).std()
pd.concat([df1[['difference']], df2[['difference']]]).groupby(level=0).mean()