【问题标题】:Grouping dates together by year in Pandas在 Pandas 中按年份分组日期
【发布时间】:2021-09-21 07:58:04
【问题描述】:

我有一个房地产价格数据集,它们目前按“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)

我认为我很接近,但作为一个圣经菜鸟,这很令人沮丧!

感谢您提供的任何帮助;到目前为止,这个网站在寻找让我的生活更轻松的小技巧和窍门方面一直很棒

【问题讨论】:

    标签: python pandas data-analysis


    【解决方案1】:

    你很接近。正如您所做的那样,您可以使用pd.to_datetime 将您的 sale_date 转换为 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
    

    【讨论】:

    • 谢谢你,工作绝对完美!
    【解决方案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
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-13
      • 2020-07-02
      • 1970-01-01
      • 1970-01-01
      • 2016-11-15
      • 1970-01-01
      • 2022-08-11
      • 2018-04-07
      相关资源
      最近更新 更多