Python 熊猫组合多个列(使用非类型)

Python 熊猫组合多个列(使用非类型),python,pandas,dataframe,Python,Pandas,Dataframe,如果以前有人问过/回答过,我深表歉意,但经过一段时间的搜索,我找不到这个问题的答案 简单地说,我想将多个列合并为一个,用, 问题是某些单元格为空(非类型) 当组合它们时,我得到: TypeError:('sequence item 3:应为str实例,找到了非类型','在索引0处发生') 或 当添加.map(str)时,它会为每个非类型值添加“None”(有点像预期的那样) 假设我有一个生产数据框,看起来像 0 1 2 1 Rice 2 Beans

如果以前有人问过/回答过,我深表歉意,但经过一段时间的搜索,我找不到这个问题的答案

简单地说,我想将多个列合并为一个,用, 问题是某些单元格为空(非类型)

当组合它们时,我得到:

  • TypeError:('sequence item 3:应为str实例,找到了非类型','在索引0处发生')
  • 当添加.map(str)时,它会为每个非类型值添加“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

    也许有必要补充一点,我是一个非常新的人,现在正在探索熊猫/蟒蛇。因此,任何帮助或推动在正确的方向是非常感谢的

    应该在这里工作

    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
    

    NaN
    值转换为空字符串后,可以使用
    str.join

    res = df.fillna('').apply(lambda x: ', '.join(filter(None, x)), axis=1)
    
    print(res)
    
    0                 Rice
    1          Beans, Rice
    2    Milk, Beans, Rice
    3          Sugar, Rice
    dtype: object
    

    如果
    第0列
    第2列
    有一个值,而
    第1列
    没有您想要的值?在我的数据帧中@J.Doe可能重复,则值之间不可能有非类型。但为了它的发生,我仍然希望得到相同的最终结果。“column0,column2”,其中column1被忽略,因为它是非类型。我希望这是有道理的