熊猫组合多列(使用NoneType)

已经看过

我很抱歉,如果以前曾有人问过或回答过此问题,但经过一段时间的搜索后,我找不到这个问题的答案。

简而言之,我想将多个列合并为一个以分隔的列,问题是某些单元格为空(NoneType)

当结合它们时,我得到:

  1. TypeError :(“序列项3:预期的str实例,找到NoneType”,“发生在索引0”)

要么

  1. 当添加.map(str)时,它会为每个NoneType值逐字地添加“ None”(按预期)

假设我有一个生产数据框,看起来像

     0        1        2
1   Rice
2   Beans    Rice
3   Milk     Beans   Rice
4   Sugar    Rice

我想要的是带有值的单列

    Production
1   Rice
2   Beans, Rice
3   Milk, Beans, Rice
4   Sugar, Rice

通过一些搜索和调整,我添加了以下代码:

testColumn = productionFrame.iloc[::].apply(lambda x: ', '.join(x)), axis=1)

产生问题1

或像这样更改它:

testColumn = productionFrame.iloc[::].apply(lambda x: ', '.join(x.map(str)), axis=1)

哪个产生问题2

也许要补充一点,我很新,并且现在正在探索Pandas / Python。因此,非常感谢您提供任何帮助或朝着正确的方向前进!

安德鲁

pd.Series.str.cat应该在这里工作

df
Out[43]: 
       0      1     2
1   Rice    NaN   NaN
2  Beans   Rice   NaN
3   Milk  Beans  Rice
4  Sugar   Rice   NaN

df.apply(lambda x: x.str.cat(sep=', '), axis=1)
Out[44]: 
1                 Rice
2          Beans, Rice
3    Milk, Beans, Rice
4          Sugar, Rice
dtype: object

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章