我有一个具有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中实现它。我是一个初学者,尝试学习,因此任何输入都会受到赞赏。
答案 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