【发布时间】:2018-07-24 00:22:14
【问题描述】:
这是我的数据集示例
side | serial_number | inspector | date_1 | date_2
top | 10 | Paul | 4/1/18 13:21 | 4/1/18 14:22
bot | 10 | Jack | 4/1/18 13:01 | 4/1/18 14:22
bot | 11 | Jack | 4/1/18 14:01 | 4/1/18 14:53
top | 11 | Paul | 4/1/18 14:25 | 4/1/18 14:53
top | 12 | Henry | 4/1/18 14:25 | 4/1/18 14:58
对于每个唯一的元组 (serial_number, date_2),我想保留 date_1 最小的行并保留每一列,以便最终我的数据集如下所示:
side | serial_number | inspector | date_1 | date_2
bot | 10 | Jack | 4/1/18 13:01 | 4/1/18 14:22
bot | 11 | Jack | 4/1/18 14:01 | 4/1/18 14:53
top | 12 | Henry | 4/1/18 14:25 | 4/1/18 14:58
为此,我当前的代码如下所示:
import pandas as pd
df = pd.read_csv("data.csv") #getting the data in a pandas dataframe
df_sorted = df.groupby(['serial_number','date_2'], sort=False)['date_1'].min()
df_sorted .to_csv("data_sorted.csv")
所以最后,我得到了正确的数据集,但我没有分组的列丢失了。这是生成的数据集:
serial_number | date_1 | date_2
10 | 4/1/18 13:01 | 4/1/18 14:22
11 | 4/1/18 14:01 | 4/1/18 14:53
12 | 4/1/18 14:25 | 4/1/18 14:58
如何保留所有列? 谢谢。
【问题讨论】:
-
@3novak 它看起来确实相似,但我无法将其应用于我的问题。你会怎么做?
-
排序和删除重复项的解决方案直接适用于您的用例。 idxmin 是另一种选择。希望其中一个是适合您的解决方案。