python - Pandas :拆分字符串,并计算值?

标签 python pandas

<分区>

我有一个 pandas 数据集,其中有一列是逗号分隔的字符串,例如1,2,3,10:

data = [
  { 'id': 1, 'score': 9, 'topics': '11,22,30' },
  { 'id': 2, 'score': 7, 'topics': '11,18,30' },
  { 'id': 3, 'score': 6, 'topics': '1,12,30' },
  { 'id': 4, 'score': 4, 'topics': '1,18,30' }
]
df = pd.DataFrame(data)

我想获得主题中每个值的计数和平均分。所以:

topic_id,count,mean
1,2,5
11,2,8
12,1,6

等等。我该怎么做?

我已经做到了:

df['topic_ids'] = df.topics.str.split()

但现在我想我想展开 topic_ids,所以整个值集中的每个唯一值都有一列...?

最佳答案

然后取消嵌套 groupbyagg

df.topics=df.topics.str.split(',')
New_df=pd.DataFrame({'topics':np.concatenate(df.topics.values),'id':df.id.repeat(df.topics.apply(len)),'score':df.score.repeat(df.topics.apply(len))})

New_df.groupby('topics').score.agg(['count','mean'])

Out[1256]: 
        count  mean
topics             
1           2   5.0
11          2   8.0
12          1   6.0
18          2   5.5
22          1   9.0
30          4   6.5

关于python - Pandas :拆分字符串,并计算值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48508573/

相关文章:

python - 如何在用 Python 编写的 Minecraft Classic 服务器中发送数据包

python: ValueError: 从 excel 中解压(预期 2)数据的值太多

python - 实例列表理解

python - 为什么 Numpy 可变变量(例如数组)没有更新同一内存上的值?

scipy - 将一组 Pandas Series reshape 为 DataFrame 并填充缺失值

Python 遍历数据框中的值并更改为二进制值

python - 如何修复 TypeError : cannot concatenate object of type '<class ' pandas. io.parsers.TextFileReader'>';只有 Series 和 DataFrame 对象有效?

python - 将 1 分钟间隔内的最后一个值分配给 pandas DataFrame 的行

python - 如何在 Python 3 中用两行代码分解一个打印命令

python - Pandas - groupby "longest"带薪休假 (PTO) 持续时间