我有一个包含不同csv文件的列表,我想做的就是读取这些csv文件并保存在变量中以进行后继操作。
这就是我现在拥有的
DF_list= list()
for filename in sorted(glob.glob(dirname + '/*.csv')):
print(filename)
df7 = pd.read_csv(filename)
DF_list.append(df7)
我想做这样的事情,我该怎么做?
df1 = pd.read_csv(DF_list[0])
df2 = pd.read_csv(DF_list[1])
df3 = pd.read_csv(DF_list[2])
>> ValueError: Invalid file path or buffer object type: <class 'pandas.core.frame.DataFrame'>
感谢您的帮助!
答案 0 :(得分:0)
DF_list
是list
中的DataFrames
,而不是CSV文件列表DF_list[0]
是DataFrame
df1 = pd.read_csv(DF_list[0])
尝试将DataFrame
读取为CSV df1 = DF_list[0]
df2 = DF_list[1]
df3 = DF_list[2]
df = pd.concat(DF_list)
答案 1 :(得分:0)
您可以创建一个字典并将数据存储在其键前面的每个文件中。我不知道这是否有帮助,但这只是我的建议。
import pandas as pd
DF_list = {}
a = ["Book1.csv", "Book2.csv"]
for i in a:
DF_list[i] = []
# for i in len(a):
# DF_list[i] = []
for filename in a:
print(filename)
df7 = pd.read_csv(filename)
DF_list[filename] = df7
# print(DF_list["Book1.csv"]["column_name"])
print(DF_list["Book1.csv"])
# print(DF_list[0])
答案 2 :(得分:0)
您也可以使用list comprehension:
df=pd.concat([pd.read(file) for file in list])