我想知道在数据帧中的字符串列表的某种表达。
如何使用python分割字符串值?
我正在使用替换方法。
但是,我找不到只删除节点号的方法。

数据框

index    article_id
0      ['@abc_172', '@abc_249', '@abc-32', '@def-1']
1      ['@az3_2', '@bwc_4', '@xc-34', '@xc-1']
2      ['@ac_12']
3      ['#ea457870a2d32453609f52e50f84abdc_15', '@bb_3']
4       ...
...     ...


我想要这样

index       article_id                      article_id_unique_count
0      ['abc', 'abc', 'abc', 'def']                   2
1      ['az3', 'bwc', 'xc', 'xc']                     3
2      ['ac']                                         1
3      ['#ea457870a2d32453609f52e50f84abdc', 'bb']    2

 ...

最佳答案

使用re.findall

df['article_id'] =  df.article_id.apply(lambda x: re.findall('([#a-z0-9]+)',x)).apply(lambda x: [i for i in x if i.isdigit() == False])

df['article_id_unique_count'] = df['article_id'].apply(lambda x: len(set(x)))


输出量

                                article_id  article_id_unique_count
0                     [abc, abc, abc, def]                        2
1                       [az3, bwc, xc, xc]                        3
2                                     [ac]                        1
3  [#ea457870a2d32453609f52e50f84abdc, bb]                        2

关于python - 如何在python中使用条件拆分字符串数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57105552/

10-11 22:45
查看更多