Python 熊猫:数据帧中重复索引值的平均值
假设我有以下数据帧:Python 熊猫:数据帧中重复索引值的平均值,python,pandas,dataframe,Python,Pandas,Dataframe,假设我有以下数据帧: df = pd.DataFrame({'a':[0,1,2,3,1,2,3,4], 'b':[4,4,2,4,6,7,8,9]}, index = ['2010Q1', '2010Q1', '2010Q2', '2010Q2', '2010Q2', '2010Q3', '2010Q3', '2010Q4']) a b 201
df = pd.DataFrame({'a':[0,1,2,3,1,2,3,4],
'b':[4,4,2,4,6,7,8,9]},
index = ['2010Q1', '2010Q1', '2010Q2', '2010Q2', '2010Q2',
'2010Q3', '2010Q3', '2010Q4'])
a b
2010Q1 0 4
2010Q1 1 4
2010Q2 2 2
2010Q2 3 4
2010Q2 1 6
2010Q3 2 7
2010Q3 3 8
2010Q4 4 9
请注意,每个索引值都是重复的。我想要的是返回另一个在重复的索引行上平均的数据帧,并返回另一个没有重复的数据帧
e、 g
我知道如何获取第一个或最后一个重复的行,但我不知道如何对重复的行进行平均
e、 g
我认为@user3483203的
groupby
方法是最直接的。但另一个选择是使用:
df.groupby(df.index.mean()
?
a b
2010Q1 0.5 4.0
2010Q2 2.0 4.0
2010Q3 2.5 7.5
2010Q4 4.0 9.0
df[df.index.duplicated(keep = 'first')]
df[df.index.duplicated(keep = 'last')]
df.reset_index().pivot_table(columns=["index"]) # add .T to transpose dates to rows
index 2010Q1 2010Q2 2010Q3 2010Q4
a 0.5 2.0 2.5 4.0
b 4.0 4.0 7.5 9.0