将此数据输入熊猫数据帧的最有效方法是什么?



我有一个数据帧,看起来像这样(英国日期(:

类型 日期
1 2022年1月
2 2022年1月2日
3 2022年1月3日
1 2022年1月4日
2 2022年1月5日
2 06/01/2022

IIUC,你可以做:

df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)
g = df.groupby('Type')['Date']
df['Previous count'] = g.cumcount()
df['Days since latest previous'] = g.diff().fillna('-1').dt.days

输出:

Type       Date  Previous count  Days since latest previous
0     1 2022-01-01               0                          -1
1     2 2022-01-02               0                          -1
2     3 2022-01-03               0                          -1
3     1 2022-01-04               1                           3
4     2 2022-01-05               1                           3
5     2 2022-01-06               2                           1

注意。我在这里假设输入按日期排序

gg1=df1.assign(Date=pd.to_datetime(df1.Date,format="%d/%M/%Y")).groupby('Type',sort=False)
col1=gg1.cumcount()
col2=gg1.Date.diff().dt.days.fillna(-1).astype(int)
df1.assign(**{"Previous count":col1,"Days since latest previous":col2})

Type        Date  Previous count  Days since latest previous
0     1  01/01/2022               0                          -1
1     2  02/01/2022               0                          -1
2     3  03/01/2022               0                          -1
3     1  04/01/2022               1                           3
4     2  05/01/2022               1                           3
5     2  06/01/2022               2                           1

最新更新