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

我使用 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

先感谢您


慕的地8271018
浏览 166回答 2
2回答

拉丁的传说

给定的>>> df = pd.DataFrame([['foo', '||U015|U348|U768'], ['bar', 'U157|U596|0'], ['baz', '||U124']], columns=['fiz', 'all_doc'])>>> df   fiz           all_doc0  foo  ||U015|U348|U7681  bar       U157|U596|02  baz            ||U124你可以发出>>> df['all_doc'] = df['all_doc'].str.replace('\|+', '|')>>> df   fiz          all_doc0  foo  |U015|U348|U7681  bar      U157|U596|02  baz            |U124正则表达式\|+指定一个|字符序列。这些序列中的每一个都被一个|.

忽然笑

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_doc0          0  U015|U348|U768  |U015|U348|U7681  U157|U596               0       |U157|U5962          0            U124            |U124
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python