使用python

时间:2017-10-31 20:35:51

标签: python pandas csv

我有3个数据集需要读取,然后对某些列进行一些计算并生成新列,最后我必须在新的csv文件中保存新列。我不知道如何动态地执行它,因为在我需要使用不同名称保存的每次迭代中。例如,以下代码不起作用。

df.to_csv("./dataset/file'+i+'.csv',index=False) 

,我是循环中的迭代编号。

1 个答案:

答案 0 :(得分:1)

将我的answer提到类似的问题,

以下是pandas的解决方案。假设csv的内容如下:

Name, Age, Gender
John, 20, Male
Jack, 22, Male
Jill, 18, Female

我的代码如下:

import pandas as pd
df = pd.read_csv("mock_data.csv")

for index, row in df.iterrows():
    file_name = row['Name']+".csv"  #Change the column name accordingly
    pd.DataFrame(row).T.to_csv(file_name, index=None)

这将根据列#34; Name"的值创建文件名。 (即Jack,John和Jill)生成三个文件John.csvJack.csvJill.csvJohn.csv的内容如下:

Name    | Age   |  Gender |
---------------------------
John    | 20    |  Male   |

Jack.csv的内容如下:

Name    | Age   |  Gender |
---------------------------
Jack    | 22    |  Male   |

Jill.csv的内容如下:

Name    | Age   |  Gender |
---------------------------
Jill    | 20    |  Female   |

P.S: 如果您不想要标题,只需在调用header = None函数时添加.to_csv()即可。例如:

pd.DataFrame(row).T.to_csv(file_name, index=None, Header=None)

提示是使用file_name作为从任何列生成的变量,或在传递到to_csv()函数之前(或同时)输入。