我有一个数据框
if (choice == "sandwich")
{
....
} else if (choice == "platter")
{
...
} else if (choice == "salad")
{
...
} else {
cout << "\n Option unavailable, try again." << endl;
}
等等......
我希望获得与以下类似的每条规则的数据框: 例如。 rule_name A的数据帧:
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 B的数据帧:
date counts (rule_name) %_rule_name
Jan 16 1 100
Feb 16 0 0
Jun 16 1 50
等
我目前的解决方案:
date counts (rule_name) %_rule_name
Jan 16 0 0
Feb 16 2 66.6
Jun 16 0 0
正如您所看到的,我无法获得规则名称的%,并且只绘制了count_rule_name。我觉得有(a)解决方案和(b)更好的解决方案,然后迭代每个规则名称和绘图,但不幸的是我无法弄清楚。
答案 0 :(得分:3)
<强> 解决方案 强>
使用df.Date.str.split().str[0]
获得月数
df.groupby([df.Date.str.split().str[0]]).rule_name.value_counts(True) \
.unstack(fill_value=0).mul(100).round(1)
<强> 剧情 强>
df.groupby([df.Date.str.split().str[0]]).rule_name.value_counts(True) \
.unstack(fill_value=0).mul(100).round(1).plot.bar()
验证计数
df.groupby([df.Date.str.split().str[0], df.rule_name]).size().unstack(fill_value=0)