Concat字符串系列,其中某些值为空字符串

时间:2019-04-30 05:32:12

标签: python pandas

当存在空字符串时,如何向量化两列中的字符串连接?这是问题所在:

我在DF中的列:

col1 = pd.Series(['text1','','text3'])
col2 = pd.Series(['text1','text2','text3'])

当我这样做时:

new_col = col1.str.cat(col2, sep='/')

它给出:

new_col = pd.Series(['text1/text1','','text3/text3'])

但是它应该给出:

new_col = pd.Series(['text1/text1','/text2','text3/text3'])

我该怎么做? 熊猫0.24.2版

1 个答案:

答案 0 :(得分:1)

如果缺少值,则在Series.str.cat中必须输入空字符串na_rep

col1 = pd.Series(['text1',np.nan,'text3'])
col2 = pd.Series(['text1','text2','text3'])

enter image description here

因为如果为空字符串,则效果很好:

col1 = pd.Series(['text1','','text3'])
col2 = pd.Series(['text1','text2','text3'])

new_col = col1.str.cat(col2, sep='/')
print (new_col)
0    text1/text1
1         /text2
2    text3/text3
dtype: object

也可以使用替代方法:

new_col = col1 + '/' + col2
print (new_col)
0    text1/text1
1         /text2
2    text3/text3
dtype: object