我想对24个excel doc的12个进行分析,其中12个包含故事的一侧,另一12个包含另一侧。我设法将它们加载到python中,但是当我尝试将它们放入两个单独的数据帧中时,python将它们组合回了一个。
这是用于使用Python3.7的Windows服务器
import pandas as pd
import os
path = os.getcwd()
files = os.listdir(path)
files
files_car = [f for f in files if f.startswith("CAR")]
files_car
for f in files_car:
data1 = pd.read_excel(f)
car = car.append(data1)
path = os.getcwd()
files2 = os.listdir(path)
files2
files_ean = [f for f in files2 if f.startswith("ELEK")]
files_ean
ean = pd.DataFrame()
for x in files_ean:
data2 = pd.read_excel(f)
ean = ean.append(data2)
我希望files_car将包含以“ CAR”开头的12个文件 然后file_ean以“ ELEK”开头的12个文件
答案 0 :(得分:0)
这应该根据您的评论做您想要的:
import pandas as pd
import os
path = os.getcwd()
files = os.listdir(path)
car_dfs = [pd.read_excel(f) for f in files if f.startswith("CAR")]
ean_dfs = [pd.read_excel(f) for f in files if f.startswith("ELEK")]
car_df = pd.concat(files_car)
ean_df = pd.concat(files_ean)
点对:
files
),则无需重新创建os.listdir(path)
,除非要更改路径append
循环到DataFrame,因为每次调用append
都会创建一个副本。最好创建一个DataFrames列表,然后将该列表连接到一个大DataFrame中。 您可以通过以下操作进一步缩短此时间:
import pandas as pd
import os
path = os.getcwd()
files = os.listdir(path)
car_df = pd.concat([pd.read_excel(f) for f in files if f.startswith("CAR")])
ean_df = pd.concat([pd.read_excel(f) for f in files if f.startswith("ELEK")])
除非您需要单个文件DataFrames