从每一行制作CSV文件

时间:2019-10-14 13:17:25

标签: python database pandas csv dataframe

我有一个n列的数据框。一个是城市名。

我正在尝试根据城市名称提取每行,并将每行打印到新的CSV文件中。

col1  col2    cityName

a       5     Madrid
s       10    NEWYORK
d       0     London
f       2     Berlin

答案:

第一个csv文件:

col1  col2    cityName

a       5     Madrid

第二个csv文件:

col1  col2    cityName
s       10    NEWYORK

3 个答案:

答案 0 :(得分:1)

此代码将遍历任何DataFrame(如果存在)并创建一个包含列标题和行的新csv文件(针对每一行),否则,如果DataFrame不存在,它将不会执行任何操作。 / p>

import pandas as pd
i=0
while True:
    try: 
        df.iloc[[i]].to_csv("filename.csv")
        i = i+1
    except: pass

答案 1 :(得分:0)

您可以按cityName列对行进行分组,然后像这样将每个组导出为单独的csv:

编辑:将保存结果添加到csv文件

编辑:添加所有文件的zip

import zipfile
import pandas as pd

df = pd.DataFrame(
    data={'col1': ['a', 's', 'd', 'f', 'x'], 'col2': [5, 10, 0, 2, 4],
          'cityName': ['Madrid', 'NEWYORK', 'London', 'Berlin', 'Madrid']})

groupby = df.groupby('cityName')
out_zip = zipfile.ZipFile("58377674.zip", "w")

for n, g in groupby:
    print(n)
    csv = g.to_csv(index=False)
    print(csv)
    csv_filename = "{}.csv".format(n)
    with open(csv_filename, 'w') as out_file:
        out_file.write(csv)
    out_zip.write(csv_filename)

答案 2 :(得分:-1)

以下代码将创建一个CSV文件,并在其中写入一行。您可以遍历此代码直到最后一条记录,并且每次创建一个唯一的数据文件。

import csv
from datetime import datetime

for index, row in dataframe.iterrows():
    filename = datetime.now()
    filename = filename.strftime("%d-%m-%Y_%H:%M:%S")
    file = open('data_'+str(filename)+'.csv', 'w')
    w = csv.writer(file)
    w.writerow([row['col1'], row['col2'], row['cityName']])
    file.close()