如何使用Pandas从CSV文件夹中生成自定义主数据帧



我有一个文件夹,里面有多个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:])

最新更新