从.CSV文件的分割日期:2016年1月16日到年份:2016年,日期:16,月份:1

时间:2018-02-15 02:33:52

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

我有一个包含列的.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')

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

1 个答案:

答案 0 :(得分: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')

如果您想使用Year:2016,Day:16,Month: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()