如何读取多个文件并将它们加载到数据框中

How to read multiple files and load them into dataframe

我在 C:\1 中名为 11 的文件夹中有一个 csv 列表。所有数据的列数都相同。

A.csv

aa    zz    1     AA  
aab   qq    3     FF
ca    qq    5     QQ

B.csv

aa    GG    09    VV
aab   HH    03    WW
ca    CC    0     UU

如何将该文件夹中的每个文件读取到数据框中,以便它在从 csv 读取的每个新数据之间有一个空列。

所以它看起来像:

A     B     C     D     E    F     G     H     I
aa    zz    1     AA         aa    GG    09    VV
aab   qq    3     FF         aab   HH    03    WW
ca    qq    5     QQ         ca    CC    0     UU

即:

dfs = {i: pd.read_csv('C:\1\{}.csv'.format(i)) for i in ['a', 'b']}
print (dfs['a'])

或者:

import os
import pandas as pd
filelist = os.listdir(targetdir) 
df_list = [pd.read_table(file) for file in filelist]
big_df = pd.concat(df_list)


    FileNotFoundError: File b'b.csv' does not exist

您可以在每个读取的文件上添加一个间隔数据帧,如下所示:

import os
import pandas as pd

# with directory name 1, located at ~/1:
dir_name = "1"
path = "~"
dfs = []

# with files A.csv, B.csv in ~/1 (e.g. ~/1/A.csv):
for fname in os.listdir(f"{path}/{dir_name}"):

    df = pd.read_csv(f"{path}/{dir_name}/{fname}", header=None)
    spacer = pd.DataFrame([" "]*len(df))
    dfs.append(df)
    dfs.append(spacer)
master = pd.concat(dfs, axis=1)

master
     0   1  2     3  0    0   1  2   3  0
0   aa  zz  1    AA      aa  GG  9  VV   
1  aab  qq  3    FF     aab  HH  3  WW   
2   ca  qq  5    QQ      ca  CC  0  UU   

如果您确实需要您在 post 中指定的字母列名称(ABC),请使用:

import string
colnames = string.ascii_uppercase
master.columns = [x for x in colnames[:len(master.columns)]]

注意:目录路径使用Mac语法,但应该很容易适应Windows。