对某些季节使用pivot\u table或pd.groupby

2024-09-30 01:26:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有如下数据集:

      Year Month  Dryden  3rdAve  Clark  Landfill
0      2015     1    0.00    0.00    0.0       NaN
1      2015     1    0.00    0.00    0.0       NaN
2      2015     1    0.00    0.00    0.0       NaN
3      2015     1    0.00    0.00    0.0       NaN
4      2015     1    0.00    0.00    0.0       NaN
5      2015     1    0.00    0.00    0.0       NaN
6      2015     1    0.00    0.00    0.0       NaN
7      2015     1    0.00    0.00    0.0       NaN
8      2015     1    0.00    0.00    0.0       NaN
9      2015     1    0.00    0.00    0.0       NaN
10     2015     1    0.00    0.00    0.0       NaN
11     2015     1    0.00    0.00    0.0       NaN

我想运行下面的代码来计算每个季节德莱顿值的平均值:

df.Dryden.groupby([df.Year,pd.cut(df.Month,[0,3,6,9,12],labels=['Winter','Spring','Summer','Autumn'],right =False)]).mean()

我得到这个错误:

TypeError: '>' not supported between instances of 'int' and 'str'

df.dtype给我:

Year          int64
Month        object
Dryden      float64
3rdAve      float64
Clark       float64
Landfill    float64
dtype: object

我想知道是否有人能帮我


Tags: 数据代码dfobjectnanyear平均值groupby
2条回答

将月份列转换为整数,如下所示:

df.Month = df.Month.astype(int)

然后运行代码:

In [61]: df.Dryden.groupby([df.Year,pd.cut(df.Month,[0,3,6,9,12],labels=['Winter','Spring','Summer','Autumn'],right =False)]).mean()
Out[61]: 
Year  Month 
2015  Winter    0.0
Name: Dryden, dtype: float64

如果您得到一个值错误,也许这样可以:

df.Month = pd.to_numeric(df.Month, errors='coerce')

添加以下内容:

df['Month'] = df['Month'].astype(int)

或:

df['Month'] = df['Month'].astype(float).astype(int)

相关问题 更多 >

    热门问题