我有以下熊猫DataFrame df
:
bins var1 var2
[0, 2) 10 22
[2, 6) 15 20
[2, 6) 16 20
[2, 6) 14 19
[0, 2) 9 23
[0, 2) 10 22
[0, 2) 8 22
我想估算每个var1
值的平均var2
和bins
。
这是预期的结果:
bins var1 var2
[0, 2) 9.25 22.25
[2, 6) 15 19.7
我该怎么办?这是我尝试过的方法,但未返回预期结果:
import pandas as pd
avg_bins = pd.DataFrame
for c in df.columns:
b = df.groupby("bins").agg({c: "mean"}).reset_index()
if avg_bins.empty:
avg_bins = b
else:
avg_bins = pd.concat([avg_bins,b], axis=0)
avg_per_ri_bin
答案 0 :(得分:0)
可以做到这两个(第一个少的代码,第二个更基本的)
df2 = df.groupby(by='bins').agg('mean')
OR
df2=pd.DataFrame(columns=df.columns)
df2['bins']=df['bins'].unique()
for i,row in df2.iterrows():
df2.loc[i]['var1'] = df[df['bins']==row['bins']]['var1'].mean()
df2.loc[i]['var2'] = df[df['bins']==row['bins']]['var2'].mean()