为了账号安全,请及时绑定邮箱和手机立即绑定

如何删除每列中的重复字符?

如何删除每列中的重复字符?

慕的地8271018 2021-09-11 17:46:41
我使用 df_all 创建了一个新的数据框         classA classB    year1 count1    docID1          year2   count2           doc2                    0   A8   B1        1972    1       0               1973      3      U015|U348|U768             1   A8   B2        1972    2    U157|U596          1973      0             0                    2   A8   B3        1972    0       0               1973      1      U124                我已将 docID1 和 docID2 合并到新列中df_all['all_doc']=df_all['docID1'].astype(str)+'|'+df_all['docID2'].astype(str)     classA classB    year1 count1    docID1          year2   count2           doc2            all_doc    0   A8   B1        1972    1       0               1973      3      U015|U348|U768      ||U015|U348|U768    1   A8   B2        1972    2    U157|U596          1973      0             0            U157|U596|0    2   A8   B3        1972    0       0               1973      1      U124                ||U124在'all_doc'列中,它有重复的“|” 在每一行。我想知道如何删除重复的“|” 在每一行我希望看到这样的结果|U015|U348|U768|U124先感谢您
查看完整描述

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

正则表达式\|+指定一个|字符序列。这些序列中的每一个都被一个|.


查看完整回答
反对 回复 2021-09-11
?
忽然笑

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


查看完整回答
反对 回复 2021-09-11
  • 2 回答
  • 0 关注
  • 165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号