在大Pandas中按年份分组日期

2024-04-29 17:02:43 发布

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

我有一个房地产价格数据集,它们目前按“出售日期”列出。我希望能够按年计算。数据集如下所示-

SALE_DATE   COUNTY  SALE_PRICE
0   2010-01-01  Dublin  343000.0
1   2010-01-03  Laois   185000.0
2   2010-01-04  Dublin  438500.0
3   2010-01-04  Meath   400000.0
4   2010-01-04  Kilkenny    160000.0

这是我试过的代码-

by_year = property_prices['SALE_DATE'] = pd.to_datetime(property_prices['SALE_DATE'])
print(by_year)

我想我已经很接近了,但是作为一个圣经上的书呆子,这是相当令人沮丧的

感谢您提供的任何帮助;到目前为止,这个网站非常棒,它提供了一些小技巧和窍门,让我的生活更轻松


2条回答
import pandas as pd

sample_dict = {'Date':['2010-01-11', '2020-01-22', '2010-03-12'], 'Price':[1000,2000,3500]}

df = pd.DataFrame(sample_dict)

# Creating 'year' column using the Date column
df['year'] = df.apply(lambda row: row.Date.split('-')[0], axis=1)

# Groupby function
df1 = df.groupby('Year')

# Print the first value in each group
df1.first()

输出:

            Date  x
year
2010  2010-01-11  1
2020  2020-01-22  2

你很接近。正如您所做的,您可以使用pd.to_datetime将销售日期转换为日期时间列。然后groupby年份,使用dt.year获取日期时间的年份,并使用size()计算每个组的大小,在本例中为年份

property_prices['SALE_DATE'] = pd.to_datetime(property_prices['SALE_DATE'])
property_prices.groupby(property_prices.SALE_DATE.dt.year).size()

其中打印:

SALE_DATE
2010    5
dtype: int64

相关问题 更多 >