【问题标题】:Get the latest data for each customer from pandas dataframe从 pandas 数据框中获取每个客户的最新数据
【发布时间】:2023-03-16 01:01:01
【问题描述】:

我正在尝试获取每个客户的最新数据,而不管数据框中的其他属性如何。

我的数据框是这样的

我的输出应该是这样的

我已经尝试过 'df.iloc[df.groupby('customer')['date'].idxmax()]' 但我收到 ValueError。

"ValueError Traceback(最近一次调用最后一次) 在 ----> 1 df = df.iloc[df.groupby('cutomer')['date'].idxmax()]

~\Anaconda3\envs\myenv\lib\site-packages\pandas\core\groupby\groupby.py 在 wrapper(*args, **kwargs) 第653章 654 # 这可以递归调用,所以需要引发ValueError --> 655 引发 ValueError 656 657 # GH#3688 尝试逐项操作

值错误:“

【问题讨论】:

  • 欢迎来到 SO!到目前为止,您尝试过什么?
  • 能否请您删除图片的链接,并将其作为明文发布。如果您可以将信息作为数据框发布,这样每个人都可以轻松提取,那将是最好的。
  • 看起来你想根据其他属性做一个最大的日期。您尝试过任何代码吗?
  • df.loc[df.groupby(['Customer','attr1','attr2'])['date'].idxmax()]

标签: python dataframe pandas-groupby


【解决方案1】:

我觉得和这个真的一样:similar problem
在这种情况下,代码如下所示:

df['date'] = pd.to_datetime(df.date)
idx = df.groupby('Customer')['date'].transform(max) == df['date']
df[idx] 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 2020-08-06
    • 2021-10-01
    • 2022-06-22
    • 2016-12-22
    • 2022-10-24
    相关资源
    最近更新 更多