パンダで複数の基準を持つ行を数える

キムママ

以下に示すような「user_ID」、「datetime」、「action_type」列を持つパンダデータフレームがあり、いくつかの計算を実行して最後の列(最後の列=目的の出力)を取得したいと思います。

data = {'user_id': list('ddabdacddaaa'), 
            'datetime':pd.date_range("20201001", periods=12, freq='H'), 
            'action_type':list('XXXWZWKOOXWX'), 
            'as_if_X_calculated':list('121021022223')
           }
df = pd.DataFrame(data)
df
    user_id datetime    action_type as_if_X_calculated
0   d   2020-10-01 00:00:00 X   1
1   d   2020-10-01 01:00:00 X   2
2   a   2020-10-01 02:00:00 X   1
3   b   2020-10-01 03:00:00 W   0
4   d   2020-10-01 04:00:00 Z   2
5   a   2020-10-01 05:00:00 W   1
6   c   2020-10-01 06:00:00 K   0
7   d   2020-10-01 07:00:00 O   2
8   d   2020-10-01 08:00:00 O   2
9   a   2020-10-01 09:00:00 X   2
10  a   2020-10-01 10:00:00 W   2
11  a   2020-10-01 11:00:00 X   3

したがって、最後の列は、現在のレコードの時点でユーザーがアクションXを実行した回数を示しています。ユーザー「a」が表示された場合、その結果は時系列で1-1-2-2-3のようになります。では、レコードの時点またはそれ以前に発生した特定のユーザーのアクションXの数をどのように計算できますか?

PS Excelでは、次のようになります=countifs(A:A; A2; B:B; "<="&B2; C:C; "X")(列A = "user_id")

マイケル・シュチェスニー

データフレームが並べ替えられているdatetime場合は、条件の一時列を作成しaction_typeて使用できますpd.expanding

df.sort_values('datetime', inplace=True)
df['dummy'] = df.action_type == 'X'
df['X_calculated'] = (df.groupby('user_id')['dummy']
                      .expanding().sum()
                      .reset_index(level=0, drop=True)
                      .astype('int'))
df.sort_index(inplace=True)
print(df.drop('dummy', 1))
assert df.as_if_X_calculated.astype('int').equals(df.X_calculated), 'X_calculated is not equal'

アウト:

   user_id            datetime action_type as_if_X_calculated  X_calculated
0        d 2020-10-01 00:00:00           X                  1             1
1        d 2020-10-01 01:00:00           X                  2             2
2        a 2020-10-01 02:00:00           X                  1             1
3        b 2020-10-01 03:00:00           W                  0             0
4        d 2020-10-01 04:00:00           Z                  2             2
5        a 2020-10-01 05:00:00           W                  1             1
6        c 2020-10-01 06:00:00           K                  0             0
7        d 2020-10-01 07:00:00           O                  2             2
8        d 2020-10-01 08:00:00           O                  2             2
9        a 2020-10-01 09:00:00           X                  2             2
10       a 2020-10-01 10:00:00           W                  2             2
11       a 2020-10-01 11:00:00           X                  3             3

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

複数の基準を持つパンダグループ

分類Dev

パンダは複数の基準で行を削除します

分類Dev

複数の値を持つ複数の基準を持つSUMIFS

分類Dev

複数の基準を持つRstrsplit()

分類Dev

複数の基準を持つEXCELIF FORMULA

分類Dev

複数の基準を持つVLOOKUP

分類Dev

複数の基準を持つExcelCOUNTIFS

分類Dev

複数の基準を持つVLOOKUP?

分類Dev

複数の基準を持つ VBA CountIFS

分類Dev

複数の基準を持つSP

分類Dev

パンダ-新しい列データに基づいて行の値を見つけ、複数の基準で自己マージする方法

分類Dev

関数which()で複数の基準を持つforループを回避する方法

分類Dev

複数(> 100)列を超える条件を持つパンダの行のフィルタリング

分類Dev

重複する列を持つ複数の行を合計するパンダ

分類Dev

複数の条件を持つパンダの重複行を削除する

分類Dev

複数の基準を持つ行を検索して削除する

分類Dev

複数の基準を持つ列と行をループする

分類Dev

MongoDB:複数の基準を持つ配列で値を見つける

分類Dev

複数の一致した基準でExcelの行を数える

分類Dev

複数の比較基準を持つstd :: setを使用するコンテナ

分類Dev

Excelで複数の一致基準を持つSUMIF

分類Dev

複数の基準で異なる値を数える

分類Dev

パンダインデックスは、複数の基準を持つ複数のデータフレームに一致します

分類Dev

Pythonパンダ少なくとも1つのゼロを持つ行の数を数える方法

分類Dev

パンダの特定の値を持つ列に基づいて、複数の行を1つの行にマージする方法

分類Dev

パンダ-複数の列の条件に基づいて3つの出力を持つ列を作成する方法

分類Dev

パンダ:複数の値を持つセルを複数の行に変換する方法は?

分類Dev

パンダ:複数の値を持つセルを複数の行に変換する方法は?

分類Dev

複数の基準を持つ複雑な配列関数

Related 関連記事

  1. 1

    複数の基準を持つパンダグループ

  2. 2

    パンダは複数の基準で行を削除します

  3. 3

    複数の値を持つ複数の基準を持つSUMIFS

  4. 4

    複数の基準を持つRstrsplit()

  5. 5

    複数の基準を持つEXCELIF FORMULA

  6. 6

    複数の基準を持つVLOOKUP

  7. 7

    複数の基準を持つExcelCOUNTIFS

  8. 8

    複数の基準を持つVLOOKUP?

  9. 9

    複数の基準を持つ VBA CountIFS

  10. 10

    複数の基準を持つSP

  11. 11

    パンダ-新しい列データに基づいて行の値を見つけ、複数の基準で自己マージする方法

  12. 12

    関数which()で複数の基準を持つforループを回避する方法

  13. 13

    複数(> 100)列を超える条件を持つパンダの行のフィルタリング

  14. 14

    重複する列を持つ複数の行を合計するパンダ

  15. 15

    複数の条件を持つパンダの重複行を削除する

  16. 16

    複数の基準を持つ行を検索して削除する

  17. 17

    複数の基準を持つ列と行をループする

  18. 18

    MongoDB:複数の基準を持つ配列で値を見つける

  19. 19

    複数の一致した基準でExcelの行を数える

  20. 20

    複数の比較基準を持つstd :: setを使用するコンテナ

  21. 21

    Excelで複数の一致基準を持つSUMIF

  22. 22

    複数の基準で異なる値を数える

  23. 23

    パンダインデックスは、複数の基準を持つ複数のデータフレームに一致します

  24. 24

    Pythonパンダ少なくとも1つのゼロを持つ行の数を数える方法

  25. 25

    パンダの特定の値を持つ列に基づいて、複数の行を1つの行にマージする方法

  26. 26

    パンダ-複数の列の条件に基づいて3つの出力を持つ列を作成する方法

  27. 27

    パンダ:複数の値を持つセルを複数の行に変換する方法は?

  28. 28

    パンダ:複数の値を持つセルを複数の行に変換する方法は?

  29. 29

    複数の基準を持つ複雑な配列関数

ホットタグ

アーカイブ