【发布时间】:2017-01-27 18:15:41
【问题描述】:
我有一个数据框
Date rule_name
Jan 1 2016 A
Feb 4 2016 B
Jun 6 2016 C
Feb 5 2016 B
Feb 9 2016 D
Jun 5 2016 A
等等……
我希望为每个规则获得一个数据框,如下所示: 例如。 rule_name A 的数据框:
date counts (rule_name) %_rule_name
Jan 16 1 100
Feb 16 0 0
Jun 16 1 50
例如 rule_name B 的数据框:
date counts (rule_name) %_rule_name
Jan 16 0 0
Feb 16 2 66.6
Jun 16 0 0
等等
我目前的解决方案:
rule_names = df['rule_name'].unique().tolist()
for i in rule_names:
df_temp = df[df['rule_name'] == i]
df_temp = df.groupby(df['date'].map(lambda x: str(x.year) + '-' + str(x.strftime('%m')))).count()
df_temp.plot(kind='line', title = 'Rule Name: ' + str(i))
如您所见,我无法获得规则名称的百分比,而仅绘制 count_rule_name。我觉得有(a)一个解决方案和(b)一个更好的解决方案,然后遍历每个规则名称并进行绘图,但不幸的是我无法弄清楚。
【问题讨论】:
标签: python pandas plot group-by filtering