首页 > 解决方案 > python:根据日期将csv拆分为多个csv

问题描述

我正在努力从基于 .csv 的单个 csv 文件创建多个 csv date

我有一个非常大的 csv 文件的以下示例:

cid      date       pos 
11  2020-01-04  29
11  2020-01-05  29
11  2020-01-06  29
11  2020-01-07  29
11  2020-01-08  29
11  2020-01-09  29
11  2020-01-10  29
12  2020-01-04  31
12  2020-01-05  31
12  2020-01-06  31
12  2020-01-07  31
12  2020-01-08  31
12  2020-01-09  31
12  2020-01-10  31

cidand可以是任何东西,pos还有其他列。

我需要的是从这样创建多个 csv master.csv

2020-01-04.csv包含来自 master.csv 的所有列数据和日期列2020-01-04

然后 2020-01-05.csv使用带有日期列的 master.csv 中的所有数据2020-01-05 ,依此类推。

我尝试了什么:

df = pd.read_csv('path/master.csv')
cols = df.columns

df['date'] = df['date']

for i in set(df.date):
    filename = "path/"+i+".csv"
    df.loc[df.date == i].to_csv(filename,index=False,columns=cols)

标签: pythonpandascsvdate

解决方案


利用:

df = pd.read_csv('path/master.csv')

for i in set(df['date']):
    df.loc[df['date'] == i].to_csv(f"path/{i}.csv",index=False)

或者:

df = pd.read_csv('path/master.csv')    

for i, g in df.groupby('date'):
    g.to_csv(f"path/{i}.csv",index=False)
            

推荐阅读