我有 3 个数据集需要读取,然后对某些列进行一些计算并创建一个新列,最后我必须将新列保存在新的 csv 文件中。我不知道如何动态地执行此操作,因为在每次迭代中我需要使用不同的名称保存。例如下面的代码不起作用。
df.to_csv("./dataset/file'+i+'.csv',index=False)
i 是循环中的迭代次数。
最佳答案
引用我的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)
这将根据“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 ,只需在调用 .to_csv()< 时添加
功能。例如:header = None
/
pd.DataFrame(row).T.to_csv(file_name, index=None, Header=None)
提示是在传递给 to_csv()
函数之前(或同时)使用 file_name
作为从任何列或输入生成的变量。
关于python - 使用python动态保存csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47044139/