我在某个路径中有几个CSV文件。我想将它们全部加在一起,我用一个函数费力地做到了这一点,并将各个数组分配给了数据框。
是否可以在for循环中执行所有操作?
所以我不必做df1 = pd.read_csv(CSV_FILES[0]
和frames = [df1, df2, df3, df4]
吗?
当我尝试循环读取for时,出现错误。
如何通过不引用单个数组CSV_FILES[0]
而是循环执行所有操作来改进此代码?
PATH = ''
def find_csv(path):
csv_files = []
print("Looking for files at ", path)
for file in Path(path).glob('*.csv'):
csv_files.append(str(file))
print("Found ", len(csv_files), " csv files")
return csv_files
CSV_FILES = find_csv(PATH)
df1 = pd.read_csv(CSV_FILES[0])
df2 = pd.read_csv(CSV_FILES[1])
df3 = pd.read_csv(CSV_FILES[2])
df4 = pd.read_csv(CSV_FILES[3])
frames = [df1, df2, df3, df4]
df = pd.concat(frames)
答案 0 :(得分:0)
您可以创建数据框列表,进行更改:
csv_files.append(str(file))
收件人:
csv_files.append(pd.read_csv(str(file)))
然后将它们聚在一起:
df = pd.concat(CSV_FILES)