pandas - 从具有多个值的列中删除重复项,计算项目

时间:2018-03-07 07:59:26

标签: python pandas

我正在尝试删除每行的重复项,然后创建一个列,其中包含该用户每行的计数。

当前DataFrame

UITextView

所需的DataFrame

time.sleep(5)

我尝试过像

这样的东西
    handle            tweet

0   CaptainNormal     [@WayneDupreeShow, #climatechange, @Wsow]
1   Cebel6            [@NWAJimmy, @NWAJimmy, @gaystoner821]
2   davidjwalling     [#infosec, #Intel, #ACM, #IEEE]
3   nolaguy_phd       [@gaystoner821]

但一切都返回1.

1 个答案:

答案 0 :(得分:1)

如果值为string s,请先转换:

print (type(df.loc[0, 'tweet']))
<class 'str'>

import ast
df['tweet'] = df['tweet'].apply(ast.literal_eval)

替代:

df['tweet'] = df['tweet'].str.strip('[]').str.split(',\s+')

然后转换为set并获取长度:

print (type(df.loc[0, 'tweet']))
<class 'list'>

df['tweet'] = df['tweet'].apply(lambda x: list(set(x)))
df['count'] = df['tweet'].str.len()
print (df)
          handle                                      tweet  count
0  CaptainNormal  [#climatechange, @Wsow, @WayneDupreeShow]      3
1         Cebel6                 [@NWAJimmy, @gaystoner821]      2
2  davidjwalling            [#ACM, #IEEE, #infosec, #Intel]      4
3    nolaguy_phd                            [@gaystoner821]      1