回答編集履歴

2

2024/09/11 13:44

投稿

melian
melian

スコア20530

test CHANGED
@@ -7,7 +7,7 @@
7
7
  lambda y: pd.date_range(y['start'], y['end'], freq='H'), axis=1)
8
8
  .explode().value_counts(sort=False).to_frame('count')
9
9
  .reset_index(names='datetime'), include_groups=False)\
10
- .droplevel(1, axis=0).reset_index()
10
+ .reset_index()
11
11
  df['datetime'] = df['datetime'].dt.round('H')
12
12
  df = df.drop_duplicates(['id', 'datetime'])
13
13
  df = df[['datetime', 'count']].groupby('datetime').sum()

1

2024/09/11 13:36

投稿

melian
melian

スコア20530

test CHANGED
@@ -1,6 +1,6 @@
1
1
  > 同時刻内にユーザが重複しても、カウントされないようにしたいです。
2
2
 
3
- id 毎にカウントする様にして(`groupby()`)、id と時刻で重複列を取り除く様にしてみてはどうでしょうか。
3
+ id 毎にカウントする様にして(`groupby()`)、id と時刻で重複列を取り除く様にして(`drop_duplicates()`)みてはどうでしょうか。
4
4
  ```python
5
5
  df = df.sort_values('start')
6
6
  df = df.groupby('id').apply(lambda x: x.apply(