【问题标题】:select first value of specific column for each ID in sorted pandas data frame为排序的熊猫数据框中的每个 ID 选择特定列的第一个值
【发布时间】:2021-09-04 00:42:49
【问题描述】:

例如,我的数据框是:

ID time number
a 14:03:01 11
b 14:03:02 7
b 14:03:15 2
c 14:03:09 5
a 14:03:02 9
d 14:03:17 1
a 14:03:35 15
c 14:03:11 8

我按时间对该数据帧进行排序,对于每个 ID,我想获取最早时间的数字列的值。我知道解决方案是 SQL,但现在我很困惑为 pandas 做这件事。

ID number
a 11
b 7
c 5
d 1

如何使用 pandas 完成这些操作? (我不想使用“for循环”。)

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

尝试通过sort_values()方法、drop_duplicates()方法和drop()方法:

out=df.sort_values('time').drop_duplicates(subset=['ID']).drop('time',1)

通过groupby()first()

out=df.groupby('ID',as_index=False)['number'].first()

【讨论】:

    猜你喜欢
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 2017-10-10
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 2017-02-20
    相关资源
    最近更新 更多