在Python中将“类型”列转换为具有计数的单独列

时间:2020-11-11 04:29:49

标签: python pandas dataframe

我有一个具有1列和1个值的数据框

df <- data.frame(type = c("recommended: 882, meh: 501, exceptional: 283, skip: 185"),
                 stringsAsFactors=FALSE)

我正在尝试将此type列转换为多个单独的注释列及其计数

我的所需输出

recommended meh exceptional skip
        882 501         283  185

我可以这样在R中做到这一点

 library(tidyr)
    df %>%
      separate_rows(type, sep = ',\\s*') %>%
      separate(type, c('type', 'value'), sep = ':\\s*', convert = TRUE) %>%
      pivot_wider(names_from = type, values_from = value)

我正在尝试在Python中实现它。我是一个初学者,尝试学习,因此任何输入都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

我有一个包含1列和1个值的数据框:您的问题似乎只是解析一个字符串。因此,Pandas / DataFrame可能会过大。

例如:

import re
s = "recommended: 882, meh: 501, exceptional: 283, skip: 185"
dict(re.findall('([\w]*):\s(\d+)', s))

输出:

{'recommended': '882', 'meh': '501', 'exceptional': '283', 'skip': '185'}

也就是说,这里提供了DataFrame解决方案:

df['type'].str.extractall('([\w]*):\s(\d+)').set_index(0).T

输出:

0 recommended  meh exceptional skip
1         882  501         283  185
相关问题