用零蟒熊填满NaN [英] Fill nan with zero python pandas

查看:0
本文介绍了用零蟒熊填满NaN的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的代码:

for col in df:
    if col.startswith('event'):
        df[col].fillna(0, inplace=True)
        df[col] = df[col].map(lambda x: re.sub("D","",str(x)))
我有0到10个事件列"Event_0,Event_1,..." 当我用此代码填充NaN时,它会将所有事件列下的所有NaN单元格填充为0,但不会将作为该选择的第一列的EVENT_0更改为NaN。

我用以下代码从‘Events’列创建了这些列:

event_seperator = lambda x: pd.Series([i for i in 
str(x).strip().split('
')]).add_prefix('event_')
df_events = df['events'].apply(event_seperator)
df = pd.concat([df.drop(columns=['events']), df_events], axis=1)

请告诉我出了什么问题?您可以在图片中更改前查看数据帧。

推荐答案

我不知道为什么会发生这种情况,因为我把那些专栏都写成了 相同。

您的数据表明这正是没有做的事情。

您有几个选项,具体取决于您要尝试实现的目标。

1.将所有非数值转换为0

pd.to_numericerrors='coerce'一起使用:

df[col] = pd.to_numeric(df[col], errors='coerce').fillna(0)

2.将字符串(‘nan’)或空(Nan)值替换为0

使用pd.Series.replace,然后使用前面的方法:

df[col] = df[col].replace('nan', np.nan).fillna(0)

这篇关于用零蟒熊填满NaN的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆