我有一个包含多个excel文件的文件夹
column B.xlsx
column A.xlsx
column C.xlsx
...
**这些不是实际的文件名。实际的文件名比这个更具体
每个excel文件都包含我要创建的较大数据框中单个列的数据。文件的格式是这样的
a.xlsx列:
Date | ID | Mass | Units
1/21 A 5.10 g
2/21 B 5.12 g
3/21 C 5.11 g
b.xlsx列:
Date | ID | Mass | Units
1/21 A 6.10 g
2/21 B 6.12 g
3/21 C 6.11 g
我要创建的大型Dataframe如下所示:
ID | Column A | Column B | Column C|....
A 5.10 6.10
B 5.12 6.12
C 5.11 6.11
将数据分配给正确的列是很重要的,但文件名中是数据对应于哪一列的唯一指示。
我写了这个代码,但必须有一个更好的方法
files=glob.glob(r"C:\my\directory/*.xlsx")
bigDF=pd.DataFrame(columns=["ID","A","B","C"])
temp=pd.read_excel(files[0])
bigDF["ID"]=temp["ID"]
for f in files:
temp=pd.read_excel(f)
if "A" in f:
bigDF["A"]=temp["Mass"]
elif "B" in f:
bigDF["B"]=temp["Mass"]
elif "C" in f:
bigDF["C"]=temp["Mass"]
2条答案
按热度按时间62lalag41#
上面的列表基本上是:
wn9m85ua2#
使用merge and reduce-idea是获取所有Dataframe的子集,然后合并id列上的所有df。
要直接加载Dataframe列表中的Dataframe,请使用(在路径构造函数路径('.')中提供所需的路径表示当前目录)-
最后,要重命名列,可以使用-