Mar*_*bak 2 python append dataframe pandas
我有数百个 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])
Run Code Online (Sandbox Code Playgroud)
期望的输出:
filename tabs
doc1.xlsx tab1
doc1.xlsx tab2
doc1.xlsx tab3
doc1.xlsx tab4
doc2.xlsx tab1
doc2.xlsx tab2
doc2.xlsx tab3
Run Code Online (Sandbox Code Playgroud)
这是一种方法。一步创建数据框是一种高效且良好的做法。这是因为附加到列表比附加到数据帧更便宜。
FileList = glob.glob('*.xlsx')
def return_files_tabs(FileList):
for filename in FileList:
for sheet in pd.ExcelFile(filename).sheet_names:
yield [filename, sheet]
df = pd.DataFrame(list(return_files_tabs(FileList)),
columns=['Filename', 'Tab'])
Run Code Online (Sandbox Code Playgroud)
解释
sheet_names属性内的每个文件和每个工作表。| 归档时间: |
|
| 查看次数: |
3583 次 |
| 最近记录: |