【发布时间】:2021-04-11 15:29:31
【问题描述】:
我有一个包含 DateTime 的数据集,我想每 3 周绘制一次数据点的汇总数。
如何以自定义方式(如 3 周或 3 天)按我的数据对 pandas 进行分组?
我知道您可以使用 grouper 将数据按月或按周分组。
数据如下所示。
{'date': {0: '12/31/20',
1: '12/31/20',
2: '12/31/20',
3: '12/30/20',
4: '12/30/20',
5: '12/30/20',
6: '12/30/20',
7: '12/30/20',
8: '12/30/20',
9: '12/30/20',
10: '12/30/20',
11: '12/30/20',
12: '12/29/20',
13: '12/29/20',
14: '12/29/20',
15: '12/29/20',
16: '12/29/20',
17: '12/28/20',
18: '12/27/20',
19: '12/26/20',
20: '12/25/20',
21: '12/25/20',
22: '12/23/20',
23: '12/23/20',
24: '12/23/20',
25: '12/23/20',
26: '12/23/20',
27: '12/23/20',
28: '12/23/20',
29: '12/22/20',
30: '12/22/20',
31: '12/22/20',
32: '12/22/20',
33: '12/22/20',
34: '12/21/20',
35: '12/21/20',
36: '12/21/20',
37: '12/21/20',
38: '12/20/20',
39: '12/18/20',
40: '12/18/20',
41: '12/18/20',
42: '12/17/20',
43: '12/17/20',
44: '12/17/20',
45: '12/17/20',
46: '12/17/20',
47: '12/16/20',
48: '12/16/20',
49: '12/16/20',
50: '12/16/20',
51: '12/16/20',
52: '12/16/20',
53: '12/15/20',
54: '12/15/20',
55: '12/15/20',
56: '12/15/20',
57: '12/15/20',
58: '12/15/20',
59: '12/15/20',
60: '12/15/20',
61: '12/14/20',
62: '12/14/20',
63: '12/14/20',
64: '12/14/20',
65: '12/14/20',
66: '12/14/20',
67: '12/14/20',
68: '12/14/20',
69: '12/13/20',
70: '12/13/20',
71: '12/12/20',
72: '12/12/20',
73: '12/12/20',
74: '12/12/20',
75: '12/11/20',
76: '12/11/20',
77: '12/11/20',
78: '12/11/20',
79: '12/11/20',
80: '12/11/20',
81: '12/11/20',
82: '12/11/20',
83: '12/10/20',
84: '12/10/20',
85: '12/10/20',
86: '12/10/20',
87: '12/10/20',
88: '12/9/20',
89: '12/9/20',
90: '12/9/20',
91: '12/9/20',
92: '12/8/20',
93: '12/8/20',
94: '12/8/20',
95: '12/8/20',
96: '12/8/20',
97: '12/8/20',
98: '12/7/20',
99: '12/7/20',
100: '12/7/20',
101: '12/7/20',
102: '12/7/20',
103: '12/7/20',
104: '12/7/20',
105: '12/6/20',
106: '12/6/20',
107: '12/5/20',
108: '12/5/20',
109: '12/5/20',
110: '12/4/20',
111: '12/4/20',
112: '12/4/20',
113: '12/4/20',
114: '12/4/20',
115: '12/4/20',
116: '12/4/20',
117: '12/4/20',
118: '12/4/20',
119: '12/4/20',
120: '12/4/20',
121: '12/3/20',
122: '12/3/20',
123: '12/3/20',
124: '12/3/20',
125: '12/3/20',
126: '12/3/20',
127: '12/2/20',
128: '12/2/20',
129: '12/1/20',
130: '12/1/20',
131: '12/1/20',
132: '11/30/20',
133: '11/29/20',
134: '11/29/20',
135: '11/26/20',
136: '11/25/20',
137: '11/24/20',
138: '11/23/20',
139: '11/21/20',
140: '11/20/20',
141: '11/19/20',
142: '11/19/20',
143: '11/19/20',
144: '11/17/20',
145: '11/17/20',
146: '11/17/20',
147: '11/17/20',
148: '11/16/20',
149: '11/16/20',
150: '11/15/20',
151: '11/15/20',
152: '11/14/20',
153: '11/13/20',
154: '11/9/20',
155: '11/8/20',
156: '11/7/20',
157: '11/5/20',
158: '11/5/20',
159: '11/4/20',
160: '10/28/20',
161: '10/28/20',
162: '10/28/20',
163: '10/28/20',
164: '10/28/20',
165: '10/27/20',
166: '10/27/20',
167: '10/27/20'
}}
【问题讨论】:
-
您可以使用
pd.Grouper的频率,例如 3 天或 3 周,例如pd.Grouper(key='dt', freq='3D')3 天 -
@perl 谢谢,它有效。虽然它的行为方式很奇怪,就像第一天是在星期三,并且它被分组在一个时间窗口中,从我的数据集中第一天的前三周开始。原点参数不起作用。
-
根据我在文档中看到的,它应该是
offset参数,而不是origin(虽然没有尝试过,所以不能保证:))
标签: python pandas dataframe group-by data-manipulation