如何读取多个文件并将它们加载到数据框中
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 中指定的字母列名称(A
、B
、C
),请使用:
import string
colnames = string.ascii_uppercase
master.columns = [x for x in colnames[:len(master.columns)]]
注意:目录路径使用Mac语法,但应该很容易适应Windows。
我在 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 中指定的字母列名称(A
、B
、C
),请使用:
import string
colnames = string.ascii_uppercase
master.columns = [x for x in colnames[:len(master.columns)]]
注意:目录路径使用Mac语法,但应该很容易适应Windows。