使用每月日期的累积流失率计算-主要日期发布

时间:2019-07-26 06:55:47

标签: python python-3.x pandas datetime pandas-groupby

我需要以累积为基础计算每日流失率,但是在尝试了多种使用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

1 个答案:

答案 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