我有3个数据集需要读取,然后对某些列进行一些计算并生成新列,最后我必须在新的csv文件中保存新列。我不知道如何动态地执行它,因为在我需要使用不同名称保存的每次迭代中。例如,以下代码不起作用。
df.to_csv("./dataset/file'+i+'.csv',index=False)
,我是循环中的迭代编号。
答案 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.csv
,Jack.csv
和Jill.csv
。 John.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()
函数之前(或同时)输入。