2 回答

TA贡献1789条经验 获得超8个赞
给定的
>>> df = pd.DataFrame([['foo', '||U015|U348|U768'], ['bar', 'U157|U596|0'], ['baz', '||U124']], columns=['fiz', 'all_doc'])
>>> df
fiz all_doc
0 foo ||U015|U348|U768
1 bar U157|U596|0
2 baz ||U124
你可以发出
>>> df['all_doc'] = df['all_doc'].str.replace('\|+', '|')
>>> df
fiz all_doc
0 foo |U015|U348|U768
1 bar U157|U596|0
2 baz |U124
正则表达式\|+指定一个|字符序列。这些序列中的每一个都被一个|.

TA贡献1806条经验 获得超5个赞
filter+ replace+sum
您可以按标签过滤适当的列,0用空字符串替换,然后求和:
df = pd.DataFrame({'docID1': [0, 'U157|U596', 0],
'doc2': ['U015|U348|U768', 0, 'U124']})
df['all_doc'] = '|' + df.filter(regex='^doc').replace(0, '').sum(1)
print(df)
docID1 doc2 all_doc
0 0 U015|U348|U768 |U015|U348|U768
1 U157|U596 0 |U157|U596
2 0 U124 |U124
添加回答
举报