按 Pandas 中的年份将日期分组
Grouping dates together by year in Pandas
我有一个包含 属性 个价格的数据集,它们目前按 'DATE_SOLD' 列出。我希望能够按年计算它们。数据集看起来像这样 -
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)
我想我很接近,但作为一个圣经菜鸟,这很令人沮丧!
感谢您提供的任何帮助;到目前为止,这个网站在寻找让我的生活更轻松的小提示和技巧方面一直很棒
你很接近。正如您所做的那样,您可以使用 pd.to_datetime
将 sale_date 转换为日期时间列。然后 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
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
我有一个包含 属性 个价格的数据集,它们目前按 'DATE_SOLD' 列出。我希望能够按年计算它们。数据集看起来像这样 -
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)
我想我很接近,但作为一个圣经菜鸟,这很令人沮丧!
感谢您提供的任何帮助;到目前为止,这个网站在寻找让我的生活更轻松的小提示和技巧方面一直很棒
你很接近。正如您所做的那样,您可以使用 pd.to_datetime
将 sale_date 转换为日期时间列。然后 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
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