Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用一个月的日期计算累积流失率-主要是发行日期_Python_Python 3.x_Pandas_Datetime_Pandas Groupby - Fatal编程技术网

Python 使用一个月的日期计算累积流失率-主要是发行日期

Python 使用一个月的日期计算累积流失率-主要是发行日期,python,python-3.x,pandas,datetime,pandas-groupby,Python,Python 3.x,Pandas,Datetime,Pandas Groupby,我需要在累积的基础上计算每日流失率,但在尝试了使用GroupByDates方法的多种方法之后。我仍然不能这样做 我已经尝试了多种方法来更改日期。我尝试了这个方法来获取日期,这样我就可以只使用日期中的日期,但它不起作用 df['Day'] = df['Game_Play_Date'].apply(lambda x: x.days) 错误是:-“Timestamp”对象没有属性“days”,即使在使用pd.to_datetime方法和dt.days访问器之后也是如此 df_ch = df.grou

我需要在累积的基础上计算每日流失率,但在尝试了使用GroupByDates方法的多种方法之后。我仍然不能这样做

我已经尝试了多种方法来更改日期。我尝试了这个方法来获取日期,这样我就可以只使用日期中的日期,但它不起作用

df['Day'] = df['Game_Play_Date'].apply(lambda x: x.days)
错误是:-“Timestamp”对象没有属性“days”,即使在使用pd.to_datetime方法和dt.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

使用
pd.melt

print(pd.melt(df, 'Date').iloc[:, [0, 2]].sort_values(by='Date').drop_duplicates().reset_index(drop=True))
print(df.melt('Date').iloc[:, [0, 2]].sort_values(by='Date').drop_duplicates().reset_index(drop=True))
或者使用
pd.DataFrame.melt

print(pd.melt(df, 'Date').iloc[:, [0, 2]].sort_values(by='Date').drop_duplicates().reset_index(drop=True))
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

这不会删除2019年6月1日和2019年6月15日的ID吗?还是两个日期都保留?我在两个日期都需要它们,我有一个大约2500K+行的数据集,我无法验证ID是否正确complex@AbhasMehrotra尝试一下,它应该会起作用,请投票并接受它