在我的数据集中,我有一个主题列,它是由昏迷分隔的字符串。
df = pd.DataFrame({'Stats': [3377, 1843, 15234], 'Topics': ["A, B, C, D", "A, B", "C, D"]})
我需要的是绘制每个主题的平均统计数据(A,B,C,D)。像这样:
有人能提出一个明智的做法吗?
答案 0 :(得分:2)
我不确定你想要的输出是什么,但这应该会让你朝着正确的方向前进。关键是要拆分主题,然后你可以做任何你想要的分析。
df2 = pd.DataFrame([(row.Stats, topic.strip())
for _, row in df.iterrows()
for topic in row.Topics.split(',')],
columns=['Stats', 'Topic'])
>>> df2.groupby('Topic').Stats.mean()
Topic
A 2610.0
B 2610.0
C 9305.5
D 9305.5
Name: Stats, dtype: float64
>>> df2.head()
Stats Topic
0 3377 A
1 3377 B
2 3377 C
3 3377 D
4 1843 A