我有一个文件夹,里面有多个CSV文件。每个CSV文件都具有相同的尺寸。它们都有2列,每列的第一列都是相同的。有没有一种方法可以导入所有CSV并连接到一个数据帧中,其中第一个文件提供第一列及其第二列,而随后的文件只在其旁边添加第二列值?每个文件的第二列的标题是唯一的,但它们与第一个文件的标题相同。
这将为您提供path
文件夹中所有文件的组合你可以在这里找到所有与合并或组合df相关的材料
查看df(您读作df的CSV(的所有类型的组合
import pandas as pd
import os
path='path to folder'
all_files=os.listdir(path)
li = []
for filename in all_files:
df = pd.read_csv(path+filename, index_col='H1')
print(df)
li.append(df)
frame = pd.concat(li, axis=1, ignore_index=False)
frame.to_csv(path+'out.csv')
print(frame)
输入文件如下:
File1
+----+----+
| H1 | H2 |
+----+----+
| 1 | A |
| 2 | B |
| 3 | C |
+----+----+
File2:
+----+----+
| H1 | H2 |
+----+----+
| 1 | D |
| 2 | E |
| 3 | F |
+----+----+
File13:
+----+----+
| H1 | H2 |
+----+----+
| 1 | G |
| 2 | H |
| 3 | I |
+----+----+
输出为:(保存在同一目录的out.csv
文件中(
+----+----+----+----+
| H1 | H2 | H2 | H2 |
+----+----+----+----+
| 1 | A | D | G |
| 2 | B | E | H |
| 3 | C | F | I |
+----+----+----+----+
以下是我将如何进行操作。我假设文件夹中只存在csv文件。
import os
import pandas as pd
files = os.listdir("path_of_the_folder")
dfs = [pd.read_csv(file).set_index('col1') for file in files]
df_final = dfs[0].join(dfs[1:])