【发布时间】:2015-04-23 02:38:12
【问题描述】:
我是 Pandas 的新手,我有一个 Pandas 数据框,其中包含三列(每列有数千行):
- 客户 ID 号(按升序排序),如果某些客户收到多个报价/接受多个报价,则为多个 ID(dtype:int)
- 向每位客户提供报价的日期和时间(dtype : datetime64[ns])
- 如果客户接受第 2 列中的报价,则为数据和时间,否则为 NaT。
我想做的是首先从第 2 列中找到向每个唯一客户提供的最早报价的日期,然后找到每个客户接受报价的最早日期(如果有的话)(=第 3 列有日期),并从首次接受报价的日期中减去首次向客户提供报价的日期。
因此,这将为我提供每位客户首次接受报价与同一客户首次收到报价之间的时间范围(最好以天为单位)。应将这一天数附加到一个新列(如果每个客户接受任何报价,它将为每个客户列出相同的值,否则为 NaN。)
我尝试了各种方法,使用 pandas 的 .map 和 lambda,创建辅助列和各种函数,但似乎无法弄清楚。
有没有一种优雅的方式来做到这一点?
任何帮助表示赞赏。
【问题讨论】:
-
您能否展示一个数据子集的示例?
-
澄清一下,您想要从第一次接受到第一次要约的时间还是从第一次接受到提出特定要约的时间?