更新 Pandas 中的等效项

pww*_*lff 5 python sql dataframe pandas

我的数据框中有一个不应为空的列列表。

我想删除任何这些列中的空行。我的解决方案是迭代所需的列,并将“排除”列设置为在排除它们之前将向用户显示的错误消息(我将在流程结束时以报告的形式向用户呈现这些消息) )

我目前正在尝试这样的事情:

for col in requiredColumns:
    df[pd.isnull(df[col])]['excluded'] = df[pd.isnull(df[col])]['excluded'].apply(lambda x: str(x) + col + ' empty, excluded')
Run Code Online (Sandbox Code Playgroud)

但运气不好——这些列没有更新。过滤器本身(仅获取空行)有效,更新部分似乎不起作用。

我习惯了 SQL:

UPDATE df SET e = e & "empty, excluded" WHERE NZ(col, '') = ''
Run Code Online (Sandbox Code Playgroud)

Gav*_*son 4

如果您需要根据多个条件更新 panda:

你可以简单地使用.loc

>>> df
      A   B    C
0     2  40  800
1     1  90  600
2     6  80  700
3  1998  70   55
4     1  90  300
5     7  80  700
6     4  20  300
7  1998  20    2
8     7  10  100
9  1998  60    2

>>> df.loc[(df['A'] > 7) & (df['B'] > 69) , 'C'] = 75
Run Code Online (Sandbox Code Playgroud)

这将设置 'C' = 75,其中 'A' > 7 且 'B' > 69