pandas DataFrame - 如何获取不同玩家的时长
pandas DataFrame - how to get the duration of different players
我是 Python 的新手,正在使用 pandas 分析投标记录。我想知道每个玩家(7000 人)的持续时间(第一次出价的最后一次出价时间),但我不知道如何进行。见下方数据:
name bids profit date WeekOfYear
JEFF 3 -75 2012-05-25 21
JEFF 13 -325 2012-05-25 21
eQB 1 -25 2012-05-25 21
eQB 1 -25 2012-07-02 27
eQB 1 -25 2012-07-09 28
alianx 7 -175 2012-05-25 21
alianx 19 -475 2012-05-25 21
alianx 59 -1475 2012-05-26 21
alianx 13 -325 2012-05-26 21
alianx 7 -175 2012-05-27 21
Data columns (total 5 columns):
name_x 95640 non-null object
date 95640 non-null datetime64[ns]
预期结果:
name duration first_time last_time
JEFF 1 2012-05-25 2012-05-25
eQB 46 2012-05-25 2012-07-09
alianx 3 2012-05-25 2012-05-27
我在计算每个玩家的 first_time 和 last_time 时遇到问题,曾经尝试过:
data['last_time'] = data.groupby(['date','name_x']).max().reset_index()
但是好像不行。
提前致谢!
根据您上面提出的建议,我不确定您的数据(即我没有在数据框中看到 name_x
,但假设它一定存在)。我会尝试:
data['last_time'] = data.groupby(['name_x'])['date'].transform('max')
我是 Python 的新手,正在使用 pandas 分析投标记录。我想知道每个玩家(7000 人)的持续时间(第一次出价的最后一次出价时间),但我不知道如何进行。见下方数据:
name bids profit date WeekOfYear
JEFF 3 -75 2012-05-25 21
JEFF 13 -325 2012-05-25 21
eQB 1 -25 2012-05-25 21
eQB 1 -25 2012-07-02 27
eQB 1 -25 2012-07-09 28
alianx 7 -175 2012-05-25 21
alianx 19 -475 2012-05-25 21
alianx 59 -1475 2012-05-26 21
alianx 13 -325 2012-05-26 21
alianx 7 -175 2012-05-27 21
Data columns (total 5 columns):
name_x 95640 non-null object
date 95640 non-null datetime64[ns]
预期结果:
name duration first_time last_time
JEFF 1 2012-05-25 2012-05-25
eQB 46 2012-05-25 2012-07-09
alianx 3 2012-05-25 2012-05-27
我在计算每个玩家的 first_time 和 last_time 时遇到问题,曾经尝试过:
data['last_time'] = data.groupby(['date','name_x']).max().reset_index()
但是好像不行。 提前致谢!
根据您上面提出的建议,我不确定您的数据(即我没有在数据框中看到 name_x
,但假设它一定存在)。我会尝试:
data['last_time'] = data.groupby(['name_x'])['date'].transform('max')