【发布时间】:2019-11-17 15:54:57
【问题描述】:
以下列表只是我创建的一个示例。我有一个更长的列表,第一列是汽车序列号,第二列是日期。在后面的列中有很多数据。一辆车(序列号)总是有三个报告,它们应该保持在一起。但日期总是在变化。所以一天“car_01”有最新的条目,而另一天“car_24”有最新的条目。带有汽车序列号的最新条目应位于顶部。然后按照序列号的另外两个报告。第四个应该是第二个最新的报告,两个报告都在第二个序列号之后。
Cars date
0 Car_01 2019-01-22
1 Car_01 2019-05-23
2 Car_01 2019-06-17
3 Car_02 2019-02-15
4 Car_02 2019-06-17
5 Car_02 2019-09-18
6 Car_03 2019-02-27
7 Car_03 2019-10-19
8 Car_03 2019-11-22
9 Car_04 2019-04-12
10 Car_04 2019-11-17
11 Car_04 2019-01-16
有没有办法创建组然后按日期排序?
vs = vs.sort_values(by=['date'], ascending=False)
如果我这样排序,汽车就会混在一起。
Cars date
8 Car_03 2019-11-22
10 Car_04 2019-11-17
7 Car_03 2019-10-19
5 Car_02 2019-09-18
2 Car_01 2019-06-17
4 Car_02 2019-06-17
1 Car_01 2019-05-23
9 Car_04 2019-04-12
6 Car_03 2019-02-27
3 Car_02 2019-02-15
0 Car_01 2019-01-22
11 Car_04 2019-01-16
如果排序正确,输出应该是这样的。
Cars date
0 Car_03 2019-11-22
1 Car_03 2019-10-19
2 Car_03 2019-02-27
3 Car_04 2019-11-17
4 Car_04 2019-04-12
5 Car_04 2019-01-16
6 Car_02 2019-09-18
7 Car_02 2019-06-17
8 Car_02 2019-02-15
9 Car_01 2019-06-17
10 Car_01 2019-05-23
11 Car_01 2019-01-22
【问题讨论】:
-
您应该添加原始数据而不是图像或屏幕截图
-
vs.sort_values(by=['Cars', 'date'], ascending=False)
-
@FlorianH 在这种情况下,最新日期不会留在最前面。
-
@jezrael 这也不能解决我的问题。哪辆车在上面并不重要,他们应该成群结队地呆在一起。重要的部分是日期。
-
你能在问题中添加预期的输出吗?
标签: python excel pandas numpy sorting