如何解决Python从多个CSV文件读取数据并将每个文件添加到新列 interview1.csv interview2.csv
我有多个CSV文件中的以下代码:
import pandas as p
import csv
csv_list=['interview1.csv','interview2.csv',...]
for itw in csv_list:
df = p.read_csv(itw)
df.to_csv('out.csv',mode='a')
现在,它将所有内容添加到一长列中的新CSV文件中。读取每个CSV文件后,如何在一个输出文件中包含多列,如何移动到新列?本质上,我希望每个输入文件在单个输出文件中成为一列。
解决方法
- 创建数据框列表,然后在
axis=1
上concat
- 使用列表推导创建数据框列表
- 整个内容可以合并为一行,但是为了清楚起见,使用了多行。
-
df = pd.concat([pd.read_csv(itw) for itw in csv_list],axis=1)
-
- 整个内容可以合并为一行,但是为了清楚起见,使用了多行。
- 行长较短的列将用
NaN
填充。
import pandas as pd
# list of all files
csv_list=['interview1.csv','interview2.csv']
# create list of dataframes
df_list = [pd.read_csv(itw) for itw in csv_list]
# combine all the dataframes
df = pd.concat(df_list,axis=1)
# save
df.to_csv('combined_files.csv',index=False)
# display(df)
col col col2
0 1 1 33.0
1 2 23 44.0
2 2 24 55.0
3 3 3t 66.0
4 3 3 77.0
5 4 45 88.0
6 5 NaN NaN
7 5 NaN NaN
8 6 NaN NaN
列表理解为for循环
df_list = list()
for itw in csv_list:
df_list.append(pd.read_csv(itw))
示例CSV文件
interview1.csv
col
1
2
2
3
3
4
5
5
6
interview2.csv
col,col2
1,33
23,44
24,55
3t,66
3,77
45,88
,
如果数据集具有公共列(在此示例中称为“ ID”),则可以使用pd.merge():
import pandas as pd
import csv
csv_list=['interview2.csv','interview3.csv',...]
merged = pd.read_csv('interview1.csv')
for itw in csv_list:
df = pd.read_csv(itw)
merged = pd.merge(left=merged,right=df,on='ID',how='outer')
merged.to_csv('out.csv')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。