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