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

div*_*obi 6 python method-chaining dataframe pandas

我想知道在链接方法构建数据框时是否可以使用 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)
Run Code Online (Sandbox Code Playgroud)

但是,我想在创建数据框时执行此操作:

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

注释行不起作用,但也许有正确的方法可以做到这一点。感谢您的任何投入。

jez*_*ael 6

DataFrame.loc可调用一起使用:

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

或者DataFrame.query

df2 = (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
Run Code Online (Sandbox Code Playgroud)