【发布时间】:2019-11-23 07:51:40
【问题描述】:
我有一个包含三列(客户 ID、交易、日期)的数据集。客户 ID 和交易之间存在一对多的关系。我想添加一个新列,其中包含每个唯一客户 ID 的最早购买数据。我尝试了下面的代码
df['First Purchase Date'] = df.loc[df.groupby('Customer ID').Date.idxmin(),:]
但是当我运行此代码时,我收到一条错误消息,指出在处理上述异常期间,发生了另一个异常:然后以一个值错误结束。它也不会创建名为 First Purchase Date 的新列。
有没有一种简单的方法可以在给定条件的另一列中找到一列中最早的数据?
我也尝试过使用 min()
df['First Purchase Date'] = df.groupby(['Customer ID'])['Date'].min()
这段代码创建了一个新列,这与我上面提到的第一行 idxmin 不同,但它给出了“NaN”作为所有内容的值。
【问题讨论】:
-
阅读 stackoverflow 指南。您应该发布一个包含代码和数据的最小示例,显示错误,并发布错误本身。否则你会被否决
-
此外,异常包含有价值的信息,可以告诉您代码中的错误之处。你应该仔细阅读它们
-
异常是什么意思?我确实发布了上面的代码。这还不够吗?你还需要什么?
-
首先,你得到的错误,你应该经常阅读它,并在你的问题中发布完整的错误。其次,您发布了 一些 代码,但不足以运行和重现您的问题。您需要发布一个显示错误的最小示例。
-
顺便说一句,请注意下面的答案应该适合你
标签: python-3.x pandas data-cleaning