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

2024-06-01 00:30:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含多个CSV文件的文件夹。每个CSV文件具有相同的维度。它们都有两列,每列的第一列都是相同的。是否有一种方法可以导入所有CSV并连接到一个数据帧中,其中第一个文件提供第一列及其第二列,而后续文件只在该数据帧旁边添加第二列值?每个文件的第二列的标题是唯一的,但它们与第一个文件的标题相同


Tags: 文件csv数据方法文件夹标题
2条回答

以下是我将如何进行。 我假设文件夹中只存在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:])

这将为您提供path文件夹中所有文件的组合 您可以在here中找到与合并或合并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  |
+  +  +  +  +

相关问题 更多 >