如何从熊猫日期框架中

时间:2016-06-09 21:10:55

标签: python pandas

我想看看一天中的时间'一周一周对我的用户产生的影响,以便快速直观地了解时间趋势的一致性。因此,作为第一次开始,我使用了这个:

df[df['week'] < 10][['realLocalTime', 'week']].hist(by = 'week', bins = 24, figsize = (15, 15))

产生以下内容:

image

这是一个很好的简单开始,但我真正想要的是将直方图表示为线图,并覆盖所有线,每个week在同一个图上。有没有办法做到这一点?

我对ggplot有更多的经验,我只是通过添加因子级别依赖颜色来实现这一点。使用pandas和/ matplotlib吗?

是否有同样简单的方法

这是我的数据:

    realLocalTime   week
1   12  10
2   12  10
3   12  10
4   12  10
5   13  5
6   17  5
7   17  5
8   6   6
9   17  5
10  20  6
11  18  5
12  18  5
13  19  6
14  21  6
15  21  6
16  14  6
17  6   6
18  0   6
19  21  5
20  17  6
21  23  6
22  22  6
23  22  6
24  17  6
25  22  5
26  13  6
27  23  6
28  22  5
29  21  6
30  17  6
...     ...     ...
70  14  5
71  9   5
72  19  6
73  19  6
74  21  6
75  20  5
76  20  5
77  21  5
78  15  6
79  22  6
80  23  6
81  15  6
82  12  6
83  7   6
84  9   6
85  8   6
86  22  6
87  22  6
88  22  6
89  8   5
90  8   5
91  8   5
92  9   5
93  7   5
94  22  5
95  8   6
96  10  6
97  0   6
98  22  5
99  14  6

2 个答案:

答案 0 :(得分:0)

也许您只需使用crosstab按周计算元素数量并绘制它。

# Test data
d = {'realLocalTime': ['12','14','14','12','13','17','14', '17'],
 'week': ['10','10','10','10','5','5','6', '6']}
df = DataFrame(d)

ax = pd.crosstab(df['realLocalTime'], df['week']).plot()

enter image description here

答案 1 :(得分:0)

使用groupby和value_counts

df.groupby('week').realLocalTime.value_counts().unstack(0).fillna(0).plot()

enter image description here