【问题标题】:Pandas counting first row as header when it should not熊猫在不应该将第一行计为标题时
【发布时间】:2021-03-28 16:14:48
【问题描述】:

我正在从 excel 导入表格并将其转换为 pandas 数据框。出于某种原因,即使我没有 header 命令,它也会继续将第一行数据计为 header。

df2=pd.DataFrame(pd.read_excel(r"/path/to/File.xlsx", sheet_name="Sheet2"))
print(df2)

返回

 +-+--+--+
 |1|20|70|
 +-+--+--+
0|4|27|50|
 +-+--+--+
1|2|25|30|
 +-+--+--+
2|7|23|80|
...

但我需要它返回

  0  1  2
 +-+--+--+
0|1|20|70|
 +-+--+--+
1|4|27|50|
 +-+--+--+
2|2|25|30|
 +-+--+--+
3|7|23|80|

我尝试输入不同的工作表而不是 sheet2,它使用不同的数据。我尝试将相同的数据移动到不同的工作表,但仍然无法正常工作。

我还检查了df2.columns.dtype 并得到了dtype('O') 我需要它是dtype('int64')

【问题讨论】:

  • pd.read_excel(r"/path/to/File.xlsx", sheet_name="Sheet2", header=None) 返回一个数据帧
  • 如果不指定“header”参数,则设置为0,即第一行。在 read_excel 中添加 header=None 。

标签: python python-3.x excel pandas dataframe


【解决方案1】:

直接做

df = pd.read_excel(filename, sheet_name="Sheet2", header=None)

根据文档:

header int,int 列表,默认 0 用于已解析 DataFrame 的列标签的行(0-indexed)。如果传递了一个整数列表,这些行位置将被组合成一个 MultiIndex。如果没有标题,请使用 None。

【讨论】:

    猜你喜欢
    • 2022-07-26
    • 2020-05-07
    • 2022-01-01
    • 2020-07-09
    • 2020-05-04
    • 2017-05-09
    • 1970-01-01
    • 2020-10-20
    • 2016-07-01
    相关资源
    最近更新 更多