【问题标题】:Split Date from .CSV file: 1/16/2016 to Year: 2016, Day: 16, Month: 1从 .CSV 文件拆分日期:2016 年 1 月 16 日至年:2016,日:16,月:1
【发布时间】:2018-07-25 17:39:49
【问题描述】:

我有一个 .csv 文件,其中包含以下列:NAME、DATE、INFO、STATS、MORE_INFO

我想导入 .csv 文件(使用 Python 3.6 代码或 Pandas)

然后我需要过滤列:NAME、DATE、INFO

这是我遇到问题的地方,我需要将 .csv 文件的“日期”列列为 2016 年 1 月 16 日并将其分开,以便我只能为过滤后的 .csv 输出选择 MONTH文件。

我的最后一列要读如 NAME、MONTH、INFO

整个“日期”列分为两年 - 2016 年和 2017 年。我需要将 2016 年的名称、月份、信息保存到一个新的 .csv 文件中,2017 年也是如此,所以每年由分组月份分隔。

averageData = pd.read_csv('Data.csv', sep = ',', parse_dates=True)
df1 = averageData.loc[:, ["DATE", "NAME", "INFO"]]
df1["DATE"] = pd.to_datetime(df1["DATE"])
stripdate = datetime.datetime.strptime(['01-01-2016'], '%Y-%m-%d')

datetime.datetime.strptime() 应该以正确格式重新排列日期的变量 stripdate 是我误解的地方。如何按我的 .csv 文件中“日期”列下列出的日期的 MONTH 对所有内容进行分组。然后在新的 .csv 文件中按年份进一步分组?

【问题讨论】:

    标签: python-3.x pandas datetime split strptime


    【解决方案1】:
    import pandas as pd
    
    df = pd.DataFrame({'date':['01-16-2016','06-24-2016','04-30-2016','07-09-2016','03-21-2017','01-13-2017'],'Parameter':[10,420,60,10,21,33]})
    
    df['date'] = pd.to_datetime(df['date'], format='%m-%d-%Y')
    

    如果您想在数据中添加年份:2016,日期:16,月份:1 的列,请尝试:

    df['Year'] = df['date'].dt.year
    df['Month'] = df['date'].dt.month
    df['Day'] = df['date'].dt.day
    

    之后,您可以根据年份定位数据框并保存到 csv。

    df.loc[df['Year'] == 2016].to_csv('2016.csv')
    

    如果您想按月对数据进行分组:

    df=df.set_index('date')
    df1=df.resample("M").sum() # Mean is another option.
    

    df1 = df.groupby(pd.TimeGrouper("M")).sum()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      • 2021-07-13
      • 1970-01-01
      相关资源
      最近更新 更多