繁体   English   中英

pandas.read_excel 会保留列顺序吗?

[英]Will pandas.read_excel preserve column order?

我需要阅读excel文件中的表格。 但是表格中的列数(大约 100 到 150)、列名称和列位置可能每天都在变化。 pandas.read_excel 会返回一个数据框,其中列的顺序与我的日常 Excel 表中的列顺序相同吗? 我正在使用熊猫 0.25.3

pandas将完全按照原始文件中的列顺序返回给您。 如果文件中的顺序发生变化,数据框中列的顺序也会发生变化。

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

现在可能已经晚了。 我想分享我如何处理 Excel 文件的读取。

我将read_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']]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM