我有一個具有以下結構的表;count每次用戶在該日期再次訪問該應用程式時,該列都會更新。
| 用戶身份 | 日期 | 數數 |
|---|---|---|
| 1 | 1/1/2021 | 4 |
| 2 | 1/1/2021 | 7 |
| 1 | 1/2/2021 | 3 |
| 3 | 1/2/2021 | 10 |
| 2 | 1/3/2021 | 4 |
| 4 | 1/1/2021 | 12 |
我想根據 對這些資料進行解聚合count,例如,user_idof 1 將在 1/1/2021 上有四條記錄而沒有該count列。之后,我想將隨機時間連接到日期。我的輸出是這樣的:
| 用戶身份 | 約會時間 |
|---|---|
| 1 | 2021/1/1 16:00:21 |
| 1 | 1/1/2021 7:23:55 |
| 1 | 1/1/2021 12:01:45 |
| 1 | 2021/1/1 21:21:07 |
我正在為此使用熊貓。我認為隨機化時間戳很簡單,只是根據列對資料進行解聚合對我來說有點棘手。
uj5u.com熱心網友回復:
您可以復制索引并添加 0 到 24 小時之間的隨機時間:
(df.loc[df.index.repeat(df['count'])]
.assign(date=lambda d: pd.to_datetime(d['date'])
pd.to_timedelta(np.random.randint(0,24*3600, size=len(d)), unit='s'))
.rename({'date': 'date_time'})
.drop('count', axis=1)
)
輸出:
user_id date
0 1 2021-01-01 03:32:40
0 1 2021-01-01 03:54:18
0 1 2021-01-01 00:57:49
0 1 2021-01-01 13:04:08
1 2 2021-01-01 00:34:03
1 2 2021-01-01 00:14:17
1 2 2021-01-01 03:57:20
1 2 2021-01-01 22:01:11
1 2 2021-01-01 22:09:55
1 2 2021-01-01 13:15:36
1 2 2021-01-01 12:26:39
2 1 2021-01-02 22:51:17
2 1 2021-01-02 13:44:12
2 1 2021-01-02 01:39:14
3 3 2021-01-02 09:22:16
3 3 2021-01-02 03:34:15
3 3 2021-01-02 23:05:49
3 3 2021-01-02 02:21:35
3 3 2021-01-02 19:51:41
3 3 2021-01-02 16:02:20
3 3 2021-01-02 18:14:05
3 3 2021-01-02 09:07:14
3 3 2021-01-02 22:43:44
3 3 2021-01-02 20:48:15
4 2 2021-01-03 19:25:04
4 2 2021-01-03 14:08:03
4 2 2021-01-03 21:23:58
4 2 2021-01-03 17:24:58
5 4 2021-01-01 23:37:41
5 4 2021-01-01 06:06:17
5 4 2021-01-01 19:23:29
5 4 2021-01-01 02:12:50
5 4 2021-01-01 08:09:59
5 4 2021-01-01 03:49:30
5 4 2021-01-01 08:00:42
5 4 2021-01-01 08:03:34
5 4 2021-01-01 15:36:12
5 4 2021-01-01 14:50:43
5 4 2021-01-01 14:54:04
5 4 2021-01-01 14:58:08
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/345080.html
上一篇:基于多個if條件創建列
下一篇:如何編譯第一個haskell程式
