使用熊猫分为年份和类型

时间:2018-11-01 09:45:40

标签: python pandas pandas-groupby

我有一个数据集(数据):

(数据)

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

2 个答案:

答案 0 :(得分:1)

您要计算每个ValueYear的{​​{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')