パンダデータフレームの関数nansを前方に埋めるための高速な方法

ジョバンニデガエターノ

整数値のスパースデータフレームがあります。たとえば、次のように作成dfします

df = pd.DataFrame(np.nan, index=range(10), columns=['A', 'B', 'C'])
df.loc[(0,'A')] = 6
df.loc[(3,'A')] = 8
df.loc[(4,'B')] = 2

こんな感じです

    A   B   C
0   6 NaN NaN
1 NaN NaN NaN
2 NaN NaN NaN
3   8 NaN NaN
4 NaN   2 NaN
5 NaN NaN NaN
6 NaN NaN NaN
7 NaN NaN NaN
8 NaN NaN NaN
9 NaN NaN NaN

ここで、各nan値に前の値-1を再帰的に入力します(nanでない場合)。たとえば、このコードはトリックを実行します。

for j in range(len(df.index)):
    df = df.fillna(value=df.shift(1)-1, limit=1)

そしてそれは生成します

   A   B   C
0  6 NaN NaN
1  5 NaN NaN
2  4 NaN NaN
3  8 NaN NaN
4  7   2 NaN
5  6   1 NaN
6  5   0 NaN
7  4  -1 NaN
8  3  -2 NaN
9  2  -3 NaN

問題は、「実際の」データフレームに適用されるこのコードは、範囲に制限がある場合でも、地獄のように遅いことですj非常にdf.fillna(method='ffill')高速な単純なものに非常に近いように見えるので、このプロセスを高速化する方法があるかどうか疑問に思いました。

回答、洞察、コメントを事前に感謝します。

ジェレレス

これは一般的な解決策ではありませんが、特定の場合に期待される出力を生成するはずです。

for col in df.columns:
    g = df[col].notnull().cumsum()
    df[col] = df[col].fillna(method='ffill') - df[col].groupby(g).cumcount()

基本的に、前方に入力してから、最後のnull以外の値の後に連続するnanの数を減算します。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

パンダのデータフレームを作成して関数から埋める方法は?

分類Dev

パンダ:複数の空のデータフレームを埋める

分類Dev

パンダのデータフレームを埋める

分類Dev

パンダ:空のデータフレームを埋める

分類Dev

pandasデータフレーム列の欠落値を前方に埋めるための効率的なソリューション?

分類Dev

パンダのデータフレーム列をランダムな辞書値で埋める方法

分類Dev

パンダのデータフレームに0を埋め込む方法は?

分類Dev

パンダのデータフレームで複数のリストを0で埋める方法は?

分類Dev

前の列に基づいて、パンダデータフレームのNaNセルを埋める方法は?

分類Dev

連続した行をパンダのデータフレームに埋めるには?

分類Dev

Python:パンダのデータフレームでインデックスを見つけるための高速な方法はどれですか?

分類Dev

パンダのデータフレームにデータを書き込むための最適な方法

分類Dev

部分的に埋められたパンダのデータフレームをインデックス値で条件付きで埋める

分類Dev

Rの関数からデータフレームを埋める方法は?

分類Dev

別の2つのデータフレームからの値に基づいてパンダデータフレームを埋める方法

分類Dev

パンダのデータフレームを反復処理するためのより高速な方法を探しています

分類Dev

パンダは、どのようにデータフレーム内の前の値を持つ行のシーケンスを埋めるために

分類Dev

パンダでデータフレームのナンの値を空のリスト[]で埋める方法は?

分類Dev

パンダデータフレームの隙間を埋める

分類Dev

データフレームを埋めるための二重ループ-「複雑な代入で無効な関数」を修正する方法

分類Dev

パンダのデータフレームを検索するためのPython関数

分類Dev

パンダのデータフレームに関する情報を整理するための最も効果的な方法

分類Dev

パンダのデータフレームに関する情報を整理するための最も効果的な方法

分類Dev

パンダを使用してデータフレームの同じ行の値でNaNを埋める方法

分類Dev

forループを介してパンダのデータフレームを埋める方法は?

分類Dev

パンダ間隔を使用して値を検索し、別のデータフレームを埋める方法

分類Dev

パンダのデータフレームをループで埋める方法は?

分類Dev

列が以前に知られていないときにパンダのデータフレームを埋める方法

分類Dev

事前定義されたパンダのデータフレームを埋める

Related 関連記事

  1. 1

    パンダのデータフレームを作成して関数から埋める方法は?

  2. 2

    パンダ:複数の空のデータフレームを埋める

  3. 3

    パンダのデータフレームを埋める

  4. 4

    パンダ:空のデータフレームを埋める

  5. 5

    pandasデータフレーム列の欠落値を前方に埋めるための効率的なソリューション?

  6. 6

    パンダのデータフレーム列をランダムな辞書値で埋める方法

  7. 7

    パンダのデータフレームに0を埋め込む方法は?

  8. 8

    パンダのデータフレームで複数のリストを0で埋める方法は?

  9. 9

    前の列に基づいて、パンダデータフレームのNaNセルを埋める方法は?

  10. 10

    連続した行をパンダのデータフレームに埋めるには?

  11. 11

    Python:パンダのデータフレームでインデックスを見つけるための高速な方法はどれですか?

  12. 12

    パンダのデータフレームにデータを書き込むための最適な方法

  13. 13

    部分的に埋められたパンダのデータフレームをインデックス値で条件付きで埋める

  14. 14

    Rの関数からデータフレームを埋める方法は?

  15. 15

    別の2つのデータフレームからの値に基づいてパンダデータフレームを埋める方法

  16. 16

    パンダのデータフレームを反復処理するためのより高速な方法を探しています

  17. 17

    パンダは、どのようにデータフレーム内の前の値を持つ行のシーケンスを埋めるために

  18. 18

    パンダでデータフレームのナンの値を空のリスト[]で埋める方法は?

  19. 19

    パンダデータフレームの隙間を埋める

  20. 20

    データフレームを埋めるための二重ループ-「複雑な代入で無効な関数」を修正する方法

  21. 21

    パンダのデータフレームを検索するためのPython関数

  22. 22

    パンダのデータフレームに関する情報を整理するための最も効果的な方法

  23. 23

    パンダのデータフレームに関する情報を整理するための最も効果的な方法

  24. 24

    パンダを使用してデータフレームの同じ行の値でNaNを埋める方法

  25. 25

    forループを介してパンダのデータフレームを埋める方法は?

  26. 26

    パンダ間隔を使用して値を検索し、別のデータフレームを埋める方法

  27. 27

    パンダのデータフレームをループで埋める方法は?

  28. 28

    列が以前に知られていないときにパンダのデータフレームを埋める方法

  29. 29

    事前定義されたパンダのデータフレームを埋める

ホットタグ

アーカイブ