gpt4 book ai didi

python - 无法通过 Pandas 中的 lambda 填充多列中的 NaN 值

转载 作者:太空宇宙 更新时间:2023-11-04 04:16:15 25 4
gpt4 key购买 nike

我试图在我的 DataFrame all_files_d 中用 0 填充所有浮点列 NaN 值,然后将其放入空列表或名为 ts 的 DataFrame 中。

我的数据样本是这样的:

 ColX              ColY
56.9 6.4
67.5 NaN
NaN 8.9
NaN NaN

我已尝试遵循此问题代码,因为它似乎对某些用户有效,但似乎有 NaN 值并且它没有填充任何内容:

Fillna in multiple columns in place in Python Pandas

这是我的代码:

ts = []
all_files_d.apply(lambda x: x.fillna(0, inplace = True) if x.dtype.kind
in 'f' else x.fillna('.', inplace = True), axis = 1)

ts.append(all_files_d)

我希望得到以下结果,所有 NaN 都用 0 填充。在此先感谢。

 ColX              ColY
56.9 6.4
67.5 0
0 8.9
0 0

如有任何帮助,我们将不胜感激。

最佳答案

使用combine_firstpd.to_numeric() :

测试(添加了一个额外的字符串列):

df['Colz']=['abc',np.nan,'def',np.nan]
print(df)

ColX ColY Colz
0 56.9 6.4 abc
1 67.5 NaN NaN
2 NaN 8,9 def
3 NaN NaN NaN

df.combine_first(df.apply(lambda x: \
pd.to_numeric(x,errors='coerce')).dropna(how='all',axis=1).fillna(0))

输出

   ColX ColY Colz
0 56.9 6.4 abc
1 67.5 0 NaN
2 0.0 8,9 def
3 0.0 0 NaN

编辑,用于获取 float 据类型并用 NaN 填充:

m=df.select_dtypes('float').columns 
df.loc[:,m]=df.loc[:,m].fillna(0)
print(df)

关于python - 无法通过 Pandas 中的 lambda 填充多列中的 NaN 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55360741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com