如果一项为空,则删除行/列

时间:2019-05-03 10:48:55

标签: python pandas

我正在构建一个将定期运行的python脚本,如果网站价格发生变化,则会提醒我。由于有很多其他的帖子,我在新手方法方面走得很远,但是最后的关卡我没有什么问题。

我查看了pandas文档,发现有几件事应该可以删除包含空单元格的行,但我从未使它起作用。

pd.reset_option('max_rows')
pd.reset_option('max_columns')
pd.set_option('display.width', 800)
url="https://support.apple.com/de-de/mac/repair/service"
df = pd.read_html(url)

with pd.option_context('display.max_rows', 0, 'display.max_columns', 3):

    df[0].replace(to_replace=r' €', value='', regex=True).replace(to_replace=r'^A.*', value='', regex=True).fillna(method='bfill').to_csv("mac0.csv", index = False)

当前我正在使用它,但是我觉得如果我可以使它不打印空行,它将使我可以将相同的技术应用于需要提取数据的其他网站。

我当前作为输出得到的图像:as of posting

1 个答案:

答案 0 :(得分:1)

使用熊猫 dropna

df = df.dropna()

此方法允许删除(删除)具有NaN元素的单元格。如果值不是NaN而是空字符串,0或类似的东西,只需使用 replace 方法将NaN放入这些单元格中即可:

df = df.replace(yourvalue, NaN) #maybe should be numpy.nan? check your libraries to see the syntax of nan values

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html

请阅读文档,以更好地理解此方法,因为它允许在至少缺少一个元素的情况下,或者在所有元素都缺失的情况下,或者仅在某些列的值缺失的情况下,放置行。