【问题标题】:Python - Pandas delete specific rows/columns in excelPython - Pandas 删除 excel 中的特定行/列
【发布时间】:2018-05-09 23:13:30
【问题描述】:

我有以下 excel 文件,我想清理特定的行/列,以便进一步处理该文件。

我已经尝试过了,但我没有设法删除任何空白行,我只设法从包含数据的那些中删除。在这里,我试图只保存第三行及以后的数据。

xl = pd.ExcelFile("MRD.xlsx")
df = xl.parse("Sheet3")
df2 = df.iloc[3:]

writer4 = pd.ExcelWriter('pandas3.out.no3lines.xlsx', engine='xlsxwriter')
table5 = pd.DataFrame(df2)
table5.to_excel(writer4, sheet_name='Sheet1')
writer4.save()

我特别想删除第 1 行、第 3 行(空行)和第一列,以便我可以旋转它。有没有办法做到这一点?谢谢。

【问题讨论】:

  • 永远不要发布数据集的图像。在这种情况下,请打印您的数据框。由于空行将被读取为 NA,您只需 df.dropna(how='all')

标签: python pandas row data-cleaning


【解决方案1】:

您可以使用drop(...) 删除行,使用drop(..., axis=1) 删除列

data = [
    ['', '', '', ''],
    ['', 1, 2, 3],
    ['', '', '', ''],
    ['', 7, 8, 9],
]

import pandas as pd

df = pd.DataFrame(data)

# drop first column - [0]
df = df.drop(0, axis=1)

# drop first and third row - [0,2]
df = df.drop([0,2])

print(df)

之前:

  0  1  2  3
0           
1    1  2  3
2           
3    7  8  9

之后:

   1  2  3
1  1  2  3
3  7  8  9

【讨论】:

  • 你必须显示代码和完整的错误信息。
  • df.dropna(axis=1, how='all') 这行得通,你的方向是对的。我认为问题出在 NaN 和缺少的列名上。
猜你喜欢
  • 2018-08-03
  • 1970-01-01
  • 2012-09-14
  • 2023-03-07
  • 2014-09-16
  • 2014-10-29
  • 1970-01-01
  • 1970-01-01
  • 2020-11-26
相关资源
最近更新 更多