【发布时间】:2018-08-27 12:09:57
【问题描述】:
我有数百个 excel 文件,我想创建一个 df,其中一列中包含 excel 文件的名称,然后在第二列中包含每个选项卡的名称。我的脚本将遍历每个文件名,但我附加的方式不正确,而且我没有太多运气找到解决方案。
os.chdir(r'C:\Users\mbobak\Documents\\')
FileList = glob.glob('*.xlsx')
tabs= pd.DataFrame(columns=['filename','tabs'])
for filename in FileList:
xl = pd.ExcelFile(filename).sheet_names
tabs= tabs.append([filename,xl])
想要的输出:
filename tabs
doc1.xlsx tab1
doc1.xlsx tab2
doc1.xlsx tab3
doc1.xlsx tab4
doc2.xlsx tab1
doc2.xlsx tab2
doc2.xlsx tab3
【问题讨论】:
-
在最后一行尝试:tabs.append(pd.DataFrame([filename,xl], columns=['filename','tabs']))
-
通常最好先将数据组装成列表或字典,然后在最后创建完整的 DataFrame。我认为,如果您反复附加到数据帧,则必须大量移动内存中的内容。
标签: python pandas dataframe append