我可以在方法链中使用pd.drop删除特定的行吗?

问题描述 投票:1回答:3

[我想知道在链接方法构造数据帧时是否可以使用pandas .drop方法删除行。

一旦存在数据框,直接删除行:

import pandas as pd

df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [5, 4, 3]})
print(df1)

# drop the entries that match "2"
df1 = df1[df1['A'] !=2]
print(df1)

但是,在创建数据框时我想这样做:

df2 = (pd.DataFrame({'A': [1, 2, 3], 'B': [5, 4, 3]})
        .rename(columns={'A': 'AA'})
#        .drop(lambda x: x['A']!=2)
        )
print(df2)

注释行不起作用,但是也许有正确的方法。感谢任何输入。

python pandas dataframe method-chaining
3个回答
2
投票

DataFrame.locDataFrame.loc一起使用:

callable

df2 = (pd.DataFrame({'A': [1, 2, 3], 'B': [5, 4, 3]}) .rename(columns={'A': 'AA'}) .loc[lambda x: x['AA']!=2] )

DataFrame.query

0
投票

也许您可以在定义行代码的末尾尝试使用“ .loc”进行选择。


0
投票

您可以将DataFrame.querydf2 = (pd.DataFrame({'A': [1, 2, 3], 'B': [5, 4, 3]}) .rename(columns={'A': 'AA'}) .query("AA != 2") ) print(df2) AA B 0 1 5 2 3 3 一起使用:

DataFrame.apply
© www.soinside.com 2019 - 2024. All rights reserved.