pandas合并多个excel文件后,为什么与原数据顺序不一致
时间: 2024-02-16 13:04:38 浏览: 58
在使用`pd.concat()`函数将多个Excel文件合并成一个数据框时,合并后的数据框的顺序可能与原始数据的顺序不同。这是因为`pd.concat()`默认按照行索引进行合并,而行索引可能在不同的文件中具有不同的顺序。
为了保持原始数据的顺序,可以在读取每个Excel文件时,使用一个新的列来记录该文件的顺序,然后在合并数据框时根据该列进行排序。具体代码如下:
```python
import pandas as pd
import glob
# 获取所有要读取的Excel文件路径
excel_files = glob.glob('path/to/files/*.xlsx')
# 循环读取每个Excel文件,并将它们合并成一个数据框
dfs = []
for i, file in enumerate(excel_files):
df = pd.read_excel(file)
df['file_order'] = i # 添加一个新的列,记录该文件的顺序
dfs.append(df)
merged_df = pd.concat(dfs, ignore_index=True)
# 根据文件顺序进行排序
merged_df = merged_df.sort_values('file_order')
```
在上面的代码中,`enumerate()`函数用于获取每个Excel文件在文件列表中的索引,然后将该索引存储在一个新的列中。最后,使用`pd.DataFrame.sort_values()`函数按照该列对数据框进行排序,以保持原始数据的顺序。
阅读全文