我有两个带有文本的熊猫系列,我想加入它们以获得带有连接文本的系列。两个系列都基于相同的索引,但一个系列的值较少,这会在加入时导致 NA 值。这是一个玩具示例:import pandas as pds1 = pd.Series(['red', 'blue', 'green', 'black'], index=[1,2,3,4])s2 = pd.Series(['large', 'small'], index=[1,3])s1 1 red 2 blue 3 green 4 black dtype: objects2 1 large 3 small dtype: object现在我想用分隔符加入两个系列的文本以获得以下系列:1 red,large2 blue3 green,small4 black这就是我到目前为止所尝试的:1.s1.str.cat(s2, sep=',')1 red,large2 NaN3 green,small4 NaNdtype: objectNaN 值而不是第一个系列的值2.s1.str.cat(s2, sep=',', na_rep='')1 red,large2 blue,3 green,small4 black,dtype: object尾随逗号3.s1.str.cat(s2, sep=',', na_rep='').str.strip(',')这实际上有效,但它使代码更难理解,我不想使用任何额外的代码来修复应该首先正确完成的事情!4.pd.concat([s1,s2], axis=1).apply(','.join)TypeError: sequence item 1: expected str instance, float found5.pd.concat([s1,s2], axis=1).agg('|'.join, axis=1)TypeError: sequence item 1: expected str instance, float found由于 NA 值而不起作用。那么我怎样才能做到这一点呢?
2 回答
慕田峪9158850
TA贡献1794条经验 获得超7个赞
另外的选择
s1.append(s2).groupby(level=0).agg(','.join)
1 red,large
2 blue
3 green,small
4 black
dtype: object
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
一种解决方法可能是在s2之前添加逗号,然后cat使用s1和na_rep=''喜欢:
print (s1.str.cat(',' + s2, na_rep=''))
1 red,large
2 blue
3 green,small
4 black
dtype: object
添加回答
举报
0/150
提交
取消