在数据框中进行数据操作时如何跳过 NaN 值

Posted

技术标签:

【中文标题】在数据框中进行数据操作时如何跳过 NaN 值【英文标题】:How to skip the NaN value when doing manipulation of data in a dataframe 【发布时间】:2022-01-09 18:37:47 【问题描述】:

我有一个数据框

dfx = pd.DataFrame(
'BRAND': ['A', 'B', 'C', 'D'],
'STATUT':['Trading', 'Trading', 'Trading', 'Trading'],
'ID_1': [str(144), str(205), str(123), np.NaN],
'ID_2': [str(173), np.NaN, '0123', str(124)],
'ID_3': ['0897', np.NaN, np.NaN,np.NaN],
)

我希望有一个新列,将 ID 连接到一个新列中,仅包含数字并跳过 NaN 值。每个值都用单引号括起来,用逗号分隔。如下图所示:

在此先感谢

【问题讨论】:

【参考方案1】:

这就是你所追求的吗?

dfx['new'] = dfx[['ID_1', 'ID_2', 'ID_3']].apply(lambda x: "'" + "','".join(x.dropna()) + "'", axis=1)

  BRAND   STATUT ID_1  ID_2  ID_3                 new
0     A  Trading  144   173  0897  '144','173','0897'
1     B  Trading  205   NaN   NaN               '205'
2     C  Trading  123  0123   NaN        '123','0123'
3     D  Trading  NaN   124   NaN               '124'

【讨论】:

就是这样。谢谢!! :) 别担心,请务必点赞并标记为已接受 :)

以上是关于在数据框中进行数据操作时如何跳过 NaN 值的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 pandas 数据框中的数据类型填充 NaN 值?

使用 Pandas 进行数据操作 [重复]

python如何检查数据框中的值是不是为nan [重复]

.diff() 函数仅在 pandas 数据框中返回 NaN 值

R中 如何将数据框中的空值显示为NA

进行聚合时如何忽略数据框中的特定列