我有一个数据集(数据):
(数据)
Quarter Type Value
1989-Q1 A 3.8
1989-Q1 B 3.9
1989-Q2 A 3.7
1989-Q2 B 3.2
1989-Q3 A 4.2
1989-Q3 B 4.2
1989-Q4 A 4.1
1989-Q4 B 4.5
1990-Q1 A 4.8
1990-Q1 B 4.9
1990-Q2 A 4.7
1990-Q2 B 4.2
1990-Q3 A 4.6
1990-Q3 B 4.7
1990-Q4 A 4.8
我想使用大熊猫将每种类型(所需)的季度分组为年份
(需要)
Quarter
1989 A 3.9 # (Average of the 4 Quarters)
1990 A 3.7
1989 B 3.7 # (Average of the 4 Quarters)
1990 B 3.6
请告知如何实现。 Tq
答案 0 :(得分:1)
您要计算每个Value
和Year
的{{1}}的平均值。由于您的数据没有包含多年数据的列,因此您首先需要从Type
列中获取此数据。
一种实现方法是str.split()
。
Quarter
现在我们可以使用DataFrame.groupby()
来计算平均值:
df[["Year", "Quarter"]] = df['Quarter'].str.split('-', expand=True)
答案 1 :(得分:1)
当然,当我完成这些任务时,其他人已经首先到达了那里,但是我确实在末尾添加了一种:
df['Year'], df['Quarter'] = df['Quarter'].str.split('-', 1).str
df = df[['Year', 'Type', 'Value']]
grp = pd.DataFrame(df.groupby(['Year', 'Type'])['Value'].mean())
grp.sort_values(by='Type')