如何在Pandas中组合groupby和sort

2024-09-26 22:52:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图得到一个结果,每个'名字'与所有最新的数据,除非列是空的。在R中,我会使用groupuby,按时间戳排序,并为每一列选择最新的值。我试着在这里这样做,但我很困惑。有人能解释一下用Python怎么做吗?在下面的例子中,我的目标是:

   col2                 date name
1    4  2018-03-27 15:55:29  bil #latest timestamp with the latest non-blank col4 value

以下是我目前的代码:

d = {'name':['bil','bil','bil'],'date': ['2018-02-27 14:55:29', '2018-03-27 15:55:29', '2018-02-28 19:55:29'], 'col2': [3,'', 4]}
df2 = pd.DataFrame(data=d)
print(df2)

grouped = df2.groupby(['name']).sum().reset_index()
print(grouped)
sortedvals=grouped.sort_values(['date'], ascending=False)
print(sortedvals)

Tags: 数据namedate排序时间名字latestcol2
1条回答
网友
1楼 · 发布于 2024-09-26 22:52:51

有一种方法:

df3 = df2[df2['col2'] != ''].sort_values('date', ascending=False).drop_duplicates('name')

#   col2                 date name
# 2    4  2018-02-28 19:55:29  bil

但是,您提供的数据帧和您想要的输出似乎不一致

相关问题 更多 >

    热门问题