【发布时间】:2015-12-28 12:00:47
【问题描述】:
我是 python pandas 的新手。 任何帮助将不胜感激
这是我的原始数据:
Feed Close Sector Market_Cap
Date
2015-09-18 A 5.60 Property 50
2015-09-21 A 5.60 Property 20
2015-09-23 A 5.60 Property 30
2015-09-18 ABC 0.67 Property 50
2015-09-21 ABC 0.66 Property 80
2015-09-18 DA 0.67 Mining 65
2015-09-21 KK 1.66 Mining 80
我想得到的是:
1 创建一个名为 Mean 的新列来计算每个 Feed 的平均市值。
2 求加权平均。
This is what I want:
Feed Close Sector Market_Cap Mean Sector_WeightedAvg
Date
2015-09-18 A 5.60 Property 50 33.33 33.33/(33.33+65)
2015-09-21 A 5.60 Property 20 33.33 33.33/(33.33+65)
2015-09-23 A 5.60 Property 30 33.33 33.33/(33.33+65)
2015-09-18 ABC 0.67 Property 50 65 65/(33.33+65)
2015-09-21 ABC 0.66 Property 80 65 65/(33.33+65)
2015-09-18 DA 0.67 Mining 65 62 62/(62+80)
2015-09-21 KK 1.66 Mining 80 80 80/(62+80)
这是我当前得到 NaN 的均值代码:
df3= pd.DataFrame(df3)
df3['Mean'] = df3.groupby(by=['Sector'])[ Market_Cap].mean()
Feed Close Sector Market_Cap Mean
Date
2015-09-18 A 5.60 Property 50 NaN
2015-09-21 A 5.60 Property 20 NaN
2015-09-23 A 5.60 Property 30 NaN
2015-09-18 ABC 0.67 Property 50 NaN
对于加权平均代码:
df2['WeightedAverage'] =df3[ Market_Cap].value /df3['Mean'].value
我得到了错误:
AttributeError:“系列”对象没有属性“值”
【问题讨论】:
-
which gives error- 什么错误?我们可以得到回溯吗? -
您的数据框中没有
Value列,但您在代码中引用了它。 -
感谢 Eli,我已转发。它应该是 Market_Cap。我仍然遇到同样的错误