【问题标题】:Why pandas read_excel not reading correctly xls file?为什么 pandas read_excel 不能正确读取 xls 文件?
【发布时间】:2020-05-20 14:57:58
【问题描述】:

我只是想用以下代码用 pandas 打开 xls 文件:

import pandas as pd

frame = pd.read_excel('15_6z_12N_11.xlsx', skiprows=3)
df = pd.DataFrame(frame)
#pd.read_excel('your_excel.xlsx', , skip_blank_lines=False)

print(df)

返回是

     Unnamed: 0  185  ...  Unnamed: 254  Unnamed: 255
0           NaN  NaN  ...           NaN           NaN
1           NaN  NaN  ...           NaN           NaN
2           NaN  NaN  ...           NaN           NaN
3           NaN  NaN  ...           NaN           NaN
4           NaN  NaN  ...           NaN           NaN
..          ...  ...  ...           ...           ...
993         NaN  NaN  ...           NaN           NaN
994         NaN  NaN  ...           NaN           NaN
995         NaN  NaN  ...           NaN           NaN
996         NaN  NaN  ...           NaN           NaN
997         NaN  NaN  ...           NaN           NaN

当我的文件包含以下数据时: Data from xls

知道为什么输出不正确吗? 谢谢

Here is xls file 但是很抱歉是俄语

【问题讨论】:

  • 可以共享文件吗?因为图片上的硬测试。
  • @jezrael 更新了下载链接。
  • @S3DEV 相同的输出
  • @jezrael 你能举个例子或者详细解释一下吗?
  • @SergeBallesta 不,只有一张纸

标签: python pandas


【解决方案1】:

首先创建 DataFrame 并指定工作表名称,省略前 3 行,后 3 行转换为 MultiIndex

df = pd.read_excel('15_6z_12N_11.xls', sheet_name='PRINT', skiprows=3, header=[0,1,2])

然后Ant 可以通过删除Unnamed 字符串来展平Multiindex

df.columns = ['_'.join(y for y in x if not 'Unnamed' in y) for x in df.columns.tolist()]

【讨论】:

    【解决方案2】:

    试试这个:

    df = pd.read_excel('15_6z_12N_11.xlsx', header=[0,1,2]) #Read file, use 3 rows as header
    

    【讨论】:

      猜你喜欢
      • 2018-05-21
      • 1970-01-01
      • 2020-02-13
      • 1970-01-01
      • 1970-01-01
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      • 2014-06-24
      相关资源
      最近更新 更多