python - 在pandas中读取多标题Excel表

标签 python excel pandas

我有一个多标题 Excel 工作表,没有任何索引列。当我在 pandas 中读取 Excel 时,它将第一列视为索引。我希望 pandas 创建一个索引,而不是将第一列视为索引。任何帮助将不胜感激。

我尝试了以下代码:

df = pd.read_excel(file, header=[1,2], sheetname= "Ratings Inputs", parse_cols ="A:AA", index_col=None)

最佳答案

根据我的测试,read_csv 似乎因多行 header 而损坏:当 index_col 不存在或无时,它的行为就像 0 一样。

这里有 2 种可能的解决方法:

  1. reset_index 按照 @mounaim 的建议:

    df = pd.read_excel(file, header=[1,2], sheetname= "Ratings Inputs",
                       parse_cols ="A:AA", index_col=None).reset_index()
    

    除了第一列的标题用于命名 MultiIndex df.columns 并且第一列被命名为 `('index', ' 之外,它几乎是正确的')。所以你必须重新创建它:

    df.columns = pd.MultiIndex.from_tuples([tuple(df.columns.names)]
                                       + list(df.columns)[1:])
    
  2. 单独阅读标题

    head = pd.read_excel('3x3.xlsx', header=None, sheetname= "Ratings Inputs",
                       parse_cols ="A:AA", skiprows=1, nrows=2)
    df = pd.read_excel(file, header=2, sheetname= "Ratings Inputs",
                       parse_cols ="A:AA", index_col=None).reset_index()
    df.columns = pd.MultiIndex.from_tuples(list(head.transpose().to_records(index=False)))
    

关于python - 在pandas中读取多标题Excel表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55066259/

相关文章:

python - C2DM Python 框架

python - 在 Pandas 中创建 bool 列的更快方法

python27 matplotlib : first and last element connected

python - 如何从 statsmodels 访问季节分解的组件

python - 为 Pandas 中的不规则时间序列创建加权平均值

python - 如何将调试信息保存到文件中?

sql - 将多个 Excel 文件导入 SQL Server

html - 如何使用 VBA 将 Excel 单元格插入到 HTML 类中

Python XLRD 使用范围

python - 如何使用 pandas 根据日期列和天数列将行添加到数据框