Python在GroupBy操作中排除datetime64类型的列

最近,我在处理包含datetime64格式列的数据帧时遇到了一个问题。我尝试使用GroupBy操作对数据进行分组,但遇到了一个错误:

pythonCopy codedfsum = df.groupby(['City']).sum()
TypeError: datetime64类型不支持求和操作

这个错误告诉我,datetime64类型的列不支持求和操作,这让我感到困惑。我是Python的新手,不太清楚如何解决这个问题。不过,我找到了一个解决方法,我将在下面与大家分享。

首先,让我们看一下我处理的数据帧的示例:

mathematicaCopy codeOrder ID   Product                  Quantity Ordered   Price Each   Order Date           City
141234     iPhone                   1                  700          2019-01-22 21:25:00   Boston (MA)
141235     Lightning Charging Cable  1                  14.95        2019-01-28 14:15:00   Portland (OR)
141236     Wired Headphones          2                  11.99        2019-01-17 13:33:00   San Francisco (CA)
141237     27in FHD Monitor          1                  149.99       2019-01-05 20:33:00   Los Angeles (CA)
141238     Wired Headphones          1                  11.99        2019-01-25 11:59:00   Austin (TX)

我想要对这些数据按城市进行分组,并对"Quantity Ordered"、"Price Each"和"Total Price"这三列进行求和。但是,由于"Order Date"列是datetime64类型的,我遇到了TypeError错误。

解决这个问题的一种方法是明确指定要进行求和的列,如下所示:

pythonCopy codedf.groupby(['City'])[['Quantity Ordered', 'Price Each', 'Total Price']].sum()

这样,我们就可以正确地对数据进行分组和求和,而不会受到datetime64类型列的限制。