pandas.read_excel会保留列顺序吗?

时间:2019-11-23 09:38:49

标签: python python-3.x pandas

我需要阅读excel文件中的表格。但是,工作表中的列数(大约100到150),列名和列位置可能每天都会更改。 pandas.read_excel是否会返回数据列,其列的顺序与我的每日excel工作表中的顺序相同?我正在使用熊猫0.25.3

2 个答案:

答案 0 :(得分:1)

pandas将完全按照原始文件中的顺序返回给您。如果文件中的顺序更改,则数据框中列的顺序也将更改。

读取数据时,您可以自己定义列顺序。有时,您还需要加载数据,检查存在哪些列(使用dataframe.columns.values),然后应用某些启发式方法对其进行预处理。

答案 1 :(得分:0)

现在可能要晚了。我想分享一下如何处理Excel文件。

我将参数放入字典中的read_excel()

import pandas as pd

data = {
    # Table1 is taken from worksheet 1 in Workbook.xlsx
    'Table1': {
        'workbook' : './Workbook.xlsx',
        'worksheet': 'Sheet1',
        'columns'  : ( # Only need columns in this order
            'Column1',
            'Column3',
            'Column2',
        ),
        'converters': {
            'Column1': lambda x: int(0) if x=='' else int(x),
            'Column2': lambda x: '-' if x=='' else x,
        }
    }

# Read the required data from Excel file
df = pd.read_excel(
    data['workbook'],
    sheet_name=data['worksheet'],
    usecols=data['columns'],
    converters=data[converters]
)

# Sort the order of columns
df = df[data['columns']]