値に基づいてパンダのデータフレームを繰り返し、データフレームにカウンターを追加します

ダッソウキ

次のデータフレームがあるとします。

item_a item_b
1       123
7       32   
4       18

次に、定数「PERIODS = 3」があります。各繰り返しをカウンターとして追加しながら、上記のデータフレームを3回繰り返すにはどうすればよいですか。

望ましい結果は次のとおりです。

counter item_a item_b
1       1       123
1       7       32   
1       4       18
2       1       123
2       7       32   
2       4       18
3       1       123
3       7       32   
3       4       18
バッグ

これは別の方法です。これは、dfを必要な回数だけ連結し、連結ごとに徐々に増加する定数としてインデックスを設定します。

import numpy as np

period=3

new_df = pd.concat([df.set_index(np.repeat(i, len(df))) for i in range(1,period+1)])

>>> new_df
   item_a  item_b
1       1     123
1       7      32
1       4      18
2       1     123
2       7      32
2       4      18
3       1     123
3       7      32
3       4      18

# Or, to have counter as a separate column rather than the index:
new_df = pd.concat([df.assign(counter=np.repeat(i, len(df))) 
                    for i in range(1,period+1)]).reset_index(drop=True) 

解決策2

あなたのコメントから、あなたは迅速なコード実行を探しているので、この方法はより速いです:

new_df = pd.DataFrame(np.repeat([df.values],period, axis=0).reshape(-1,df.shape[1]), 
             index=np.repeat(range(1,period+1), len(df)), columns=df.columns)

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

パンダ:別のデータフレームの値に基づいて、データフレームに新しい列を追加します

分類Dev

以前の値に基づいてパンダデータフレームに列を追加します

分類Dev

既存のデータフレームの値に基づいて、別のデータフレームよりも大きい値をカウントします

分類Dev

既存のデータフレームの値に基づいて、別のデータフレームよりも少ない値をカウントします

分類Dev

パンダのデータフレームの別の列の値に基づいて列を追加します

分類Dev

列に基づいてデータフレームにグループカウンターを追加します

分類Dev

条件に基づいてPandasデータフレームの値を繰り返し割り当てます

分類Dev

対応する列の値に基づいて列を繰り返し、パンダのデータフレームの合計値に基づいて行を繰り返します

分類Dev

パンダ-特定のキー値に基づいてデータフレームから値を抽出します

分類Dev

別のデータフレームの値を使用して、列名に基づいてパンダデータフレームの行を乗算します

分類Dev

別のデータフレーム値に基づいて、パンダデータフレームの行からシリーズ値を削除します

分類Dev

行の値に基づいてパンダのデータフレームをマージします

分類Dev

エントリに基づいてデータフレームの値をカウントします

分類Dev

パンダは、列の同じ値に基づいてデータフレームをマージします

分類Dev

パンダは、別の列の値に基づいて列レベルを追加することにより、データフレームを再形成します

分類Dev

条件に基づいてデータフレームの最初の値を出力してから、次のシーケンスに繰り返します

分類Dev

2番目のデータフレームの行に基づいて1つのデータフレームのパンダに値を設定します

分類Dev

行の値に基づいてパンダのデータフレームに行を挿入しますか?

分類Dev

繰り返されるstr値のインデックスに基づいてデータフレーム内のstr値をマージしますか?

分類Dev

パンダ:特定の列の文字列値に基づいて、データフレームを個別のデータフレームに分割します

分類Dev

別のデータフレームの値に基づいて、1つのデータフレームの観測数をカウントします

分類Dev

列に基づいてパンダデータフレームのデータを選択します

分類Dev

列の値に基づいてパンダの2つのデータフレームを比較します

分類Dev

パンダの列の値に基づいてデータフレームの列を選択します

分類Dev

列の値に基づいて複数のパンダデータフレームを作成します

分類Dev

パンダ-条件に基づいてデータフレーム内のセルの値を変更します

分類Dev

文字列列の値に基づいてパンダのデータフレームを分割します

分類Dev

パンダのデータフレームは、条件に基づいて列の値を変更します

分類Dev

列名の条件に基づいてパンダデータフレームの列値を合計します

Related 関連記事

  1. 1

    パンダ:別のデータフレームの値に基づいて、データフレームに新しい列を追加します

  2. 2

    以前の値に基づいてパンダデータフレームに列を追加します

  3. 3

    既存のデータフレームの値に基づいて、別のデータフレームよりも大きい値をカウントします

  4. 4

    既存のデータフレームの値に基づいて、別のデータフレームよりも少ない値をカウントします

  5. 5

    パンダのデータフレームの別の列の値に基づいて列を追加します

  6. 6

    列に基づいてデータフレームにグループカウンターを追加します

  7. 7

    条件に基づいてPandasデータフレームの値を繰り返し割り当てます

  8. 8

    対応する列の値に基づいて列を繰り返し、パンダのデータフレームの合計値に基づいて行を繰り返します

  9. 9

    パンダ-特定のキー値に基づいてデータフレームから値を抽出します

  10. 10

    別のデータフレームの値を使用して、列名に基づいてパンダデータフレームの行を乗算します

  11. 11

    別のデータフレーム値に基づいて、パンダデータフレームの行からシリーズ値を削除します

  12. 12

    行の値に基づいてパンダのデータフレームをマージします

  13. 13

    エントリに基づいてデータフレームの値をカウントします

  14. 14

    パンダは、列の同じ値に基づいてデータフレームをマージします

  15. 15

    パンダは、別の列の値に基づいて列レベルを追加することにより、データフレームを再形成します

  16. 16

    条件に基づいてデータフレームの最初の値を出力してから、次のシーケンスに繰り返します

  17. 17

    2番目のデータフレームの行に基づいて1つのデータフレームのパンダに値を設定します

  18. 18

    行の値に基づいてパンダのデータフレームに行を挿入しますか?

  19. 19

    繰り返されるstr値のインデックスに基づいてデータフレーム内のstr値をマージしますか?

  20. 20

    パンダ:特定の列の文字列値に基づいて、データフレームを個別のデータフレームに分割します

  21. 21

    別のデータフレームの値に基づいて、1つのデータフレームの観測数をカウントします

  22. 22

    列に基づいてパンダデータフレームのデータを選択します

  23. 23

    列の値に基づいてパンダの2つのデータフレームを比較します

  24. 24

    パンダの列の値に基づいてデータフレームの列を選択します

  25. 25

    列の値に基づいて複数のパンダデータフレームを作成します

  26. 26

    パンダ-条件に基づいてデータフレーム内のセルの値を変更します

  27. 27

    文字列列の値に基づいてパンダのデータフレームを分割します

  28. 28

    パンダのデータフレームは、条件に基づいて列の値を変更します

  29. 29

    列名の条件に基づいてパンダデータフレームの列値を合計します

ホットタグ

アーカイブ