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)
如果您需要根据多个条件更新 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