我有以下代码:
print(df.drop(df[df['Quantity'] == 0].index).rename(columns={'Weight': 'Weight (oz.)'}))
我了解查询要执行的操作,但是我不知道为什么需要添加“ .index”部分?
.index在此特定代码中的作用是什么?
我查看了数据文档索引的python文档:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.index.html
但是不幸的是,这太模糊了,我无法理解。
答案 0 :(得分:0)
DataFrame.index
是数据框中每个记录的索引。即使两行每一列中的数据相同,它对于每一行也是唯一的。 DataFrame.drop
取index : single label or list-like
并删除与索引匹配的那些行。
因此,从上面的代码中,
df[df['Quantity'] == 0]
获取具有Quantity == 0
的行,
df[df['Quantity'] == 0].index
获取具有谓词的所有行的索引,
df.drop(df[df['Quantity'] == 0].index)
会删除该谓词返回True的所有索引。
希望这会有所帮助!
答案 1 :(得分:0)
我检查了df.drop()
的文档。它说它按索引下降。该代码首先查找数量为0的项目,但是由于drop()
与索引一起使用,它将代码将这些项目发送回数据框并接收其索引。那是index
。
https://pandas.pydata.org/pandas-docs/stable//reference/api/pandas.DataFrame.drop.html