我的数据集看起来像这样
Tr、日期、时间
AV81312,20161014,121000
AV81312,20161014,160221
AV85012,20170422,150858
AV85012,20161108,11137
AV86157,20170426,45747
AV86157,20170426,45744
AV86157,20160813,134312
我只需从每个具有最新记录的 Tr
中选择一项,即具有更高日期和时间的最新记录
所需的输出是
Tr、日期、时间
AV81312,20161014,160221
AV85012,20170422,150858
AV86157,20170426,45747
我的代码是
df2 = read_csv("sample.csv")
df2 = df2.值
x = []
对于 df2 中的 i:
对于 df2 中的 j:
如果 i[2] == j[2]:
如果 i[3] >= j[3]:
x.append(i)
它没有按预期工作
最佳答案
使用 -
df['Date_Time'] = pd.to_datetime(df['Date'].astype(str).str.cat(df['Time'].astype(str)),format='%Y%m%d%H%M%S')
df.loc[df.groupby('Tr')['Date_Time'].idxmax()].drop('Date_Time', axis=1)
输出
Tr Date Time
0 AV81312 20161014 160221
1 AV85012 20170422 150858
2 AV86157 20170426 45747
关于python - 将数据框分组并根据条件选择其中一个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54217810/