我需要以累积为基础计算每日流失率,但是在尝试了多种使用groupby date方法的方法之后。我仍然无法这样做。
我已经尝试过多种方法来更改日期。我尝试使用这种方法来获取日期,以便只能使用日期中的日期,但是它不起作用。
df['Day'] = df['Game_Play_Date'].apply(lambda x: x.days)
错误是:-即使使用pd.to_datetime方法并使用dt.days访问器,“时间戳记”对象也没有属性“ days”。
df_ch = df.groupby('Game_Play_DayofMonth')[['pid1', 'pid2']]
以数字61882、122654表示日期的值。
我在其他列上有类似的数据
Date PID1 PID2
01-06-19 xa xs
01-06-19 xb xa
01-06-19 xc xv
02-06-19 xd xb
02-06-19 xe xr
02-06-19 xf xe
我需要这样的结果,以便我也可以看到回程球员的数量。
Date ID
01-06-19 xa
01-06-19 xb
01-06-19 xc
01-06-19 xs
01-06-19 xv
02-06-19 xd
02-06-19 xe
02-06-19 xf
02-06-19 xr
02-06-19 xb
答案 0 :(得分:1)
使用pd.melt
:
print(pd.melt(df, 'Date').iloc[:, [0, 2]].sort_values(by='Date').drop_duplicates().reset_index(drop=True))
或使用pd.DataFrame.melt
:
print(df.melt('Date').iloc[:, [0, 2]].sort_values(by='Date').drop_duplicates().reset_index(drop=True))
两个输出:
Date value
0 01-06-19 xa
1 01-06-19 xb
2 01-06-19 xc
3 01-06-19 xs
4 01-06-19 xv
5 02-06-19 xd
6 02-06-19 xe
7 02-06-19 xf
8 02-06-19 xb
9 02-06-19 xr