python - 如何使用 Pandas DataFrame 中的行值从列表构建中删除 NaN 值
问题描述
伙计们,
我在 pandas 中有一个列,它是一个包含行中所有值的列表。作为下面的示例。
print(df4['List'])
0 [8,9,10,25,14,25,14,17,19,30]
1 [nan,85,48,75,nan,96,32,14,15,21,28,17,nan]
2 [nan,85,48,75,nan,]
3 [1,nan]
4 [85,75,41,nan]
5 [nan,65,34]
如何从我的列表中删除这些“nan”值?
我在python中尝试了一些传统的列表方法,但是我没有让它在pandas DataFrame中具有相同的结果。
作为这个:
while True:
try:
df4['PNs NaNs Removed'] = df4['List'].delete([nan])
except ValueError:
break
解决方案
事实证明,有许多不同的方法来指示和处理NaN
值,而且会变得非常混乱。此解决方案测试使用pandas.isna()
which 应该适用于比numpy.isnan()
.
import pandas as pd
df4['List'] = df4['List'].apply(lambda col_val: [item for item in col_val if not pd.isna(item)])
推荐阅读
- javascript - 如果条件满足,则遍历数组并求和
- ruby-on-rails - 公寓和设计不创建租户
- javascript - HTML/JS- 打开与本地主机网站的 URL 连接以解析 JSON 有效负载
- c# - 如何从服务帐户访问用户的 Google Drive 帐户?
- php - 如何用一个二维码(PHP)多次捕捉时间
- c# - 简单的 TextBox 文本绑定失败 WPF
- python - LDA 主题建模改进
- javascript - 谷歌地图 API 网址
- kubernetes - Kubernetes Cronjob 只运行了一半的时间
- .net - 如何在控制台应用程序中模拟 Internet Explorer url 编码