パンダ:リストオブジェクトを含むシリーズのオーバーラップによるフォワードフィル

カエル

私はこのようなSeries / DataFrameを持っています。それらに含まれる要素は、1つ以上の値を持つリストです。

0      NaN
1     [40]
2      NaN
3      NaN
4      NaN
5      NaN
6      NaN
7      NaN
8      NaN
9     [35]
10     NaN
11     NaN
12    [28]
13     NaN
14     NaN
15     NaN
16     NaN
17     NaN
Name: tags, dtype: object

不足している値に、5つまでの連続したエントリまでの最新の値を入力したいと思います。制限5の塗りつぶしが最も適切です。ただし、私のユースケースでは、フォワードフィルをオーバーラップさせたい場合があります。私の期待する出力は次のようになります。

0          NaN
1         [40]
2         [40]
3         [40]
4         [40]
5         [40]
6         [40]
7          NaN
8          NaN
9         [35]
10        [35]
11        [35]
12        [28]
13    [35, 28]
14    [35, 28]
15        [28]
16        [28]
17        [28]
Name: tags, dtype: object

上記の例は簡単にするためのものであり、私が説明しているこの関数は、pd.groupbyさらにいくつかのタグを使用したはるかに大きな操作の一部であるため、Pythonループはあまり役に立ちません。タグ自体のインデックスは気にしません。入力れているインデックスだけが重要です。たぶん、パンダのcumsumとインデックスの違いに基づいてスライスするアプローチがここで機能するでしょうか?

この問題に取り組むためのアイデアは、私にとって非常に役立つでしょう。前もって感謝します!

ダニ・メセホ

あなたは試すことができます:

# fill na by empty list 
df['tags'] = [[] if na else s for s, na in zip(df['tags'], df['tags'].isna())]

# compute rolling windows
df['res'] = [[l for ls in window for l in ls] for window in df['tags'].rolling(5)]
print(df)

出力

    tags       res
0     []        []
1   [40]      [40]
2     []      [40]
3     []      [40]
4     []      [40]
5     []      [40]
6     []        []
7     []        []
8     []        []
9   [35]      [35]
10    []      [35]
11    []      [35]
12  [28]  [35, 28]
13    []  [35, 28]
14    []      [28]
15    []      [28]
16    []      [28]
17    []        []

別の方法として、chain.from_iterableを使用できます

from itertools import chain

# compute rolling windows
df['res'] = [list(chain.from_iterable(window)) for window in df['tags'].rolling(5)]

パンダでリストをフラット化するためのいくつかの方法の比較については、この回答参照してください

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

ポリモーフィックオブジェクトのリストをオブジェクトフィールドに逆シリアル化する

分類Dev

ポリモーフィックオブジェクトのリストをオブジェクトフィールドに逆シリアル化する

分類Dev

オブジェクトのリストを含むテーブルをフィルタリングする-Swift

分類Dev

ポリモーフィズムによるオブジェクトのスワッピング位置

分類Dev

オンラインファイル/フォルダリストに表示されるすべてのファイルとサブディレクトリを含むHTTPディレクトリをダウンロードする方法

分類Dev

リストからフィールドを含むオブジェクトを選択するためのSpring JPAプロパティ

分類Dev

KeystoneJSリストCSVのダウンロード/エクスポートでリレーションシップフィールドタイプのオブジェクトIDを名前/タイトルに置き換える方法は?

分類Dev

Pythonオブジェクト(リストなど)を含むパンダDataFrameのディープコピー

分類Dev

リアクティブスプリングリポジトリで保存する前に、オブジェクトの複雑なフィールドをテキストフィールド(JSONとしてシリアル化)にマッピングする

分類Dev

Django:クエリセットをランダムにシャッフルし、オブジェクトフィールドにアクセスします

分類Dev

ジェネリッククラスのコンストラクターのオプションフィールドのデフォルト値

分類Dev

Java 8オプション<T>、ストリームを使用して、真のブールフィールド値を含むオブジェクトのリストをループします。

分類Dev

バックグラウンドスレッドでフリーズ可能なオブジェクトを作成する際のリソースリーク

分類Dev

リフレクションを使用してすべてのオブジェクトプロパティ(プライベートを含む)を返す

分類Dev

オプションオブジェクトスプリングブート-オブジェクトフィールドを取得する

分類Dev

ジェネリックインターフェイスと演算子のオーバーロード-ジェネリックインターフェイスブロックからのプロシージャをモジュール内でプライベートに設定する方法は?

分類Dev

tsconfigに、サーバーとクライアントをパブリックフォルダーとプライベートフォルダーにコンパイルするオプションはありますか?

分類Dev

Windowsフォームのプロパティグリッドにカスタムオブジェクトのリストを適切に表示する

分類Dev

ブートストラップのフォームコントロールのポップオーバーで必須フィールドのデフォルトメッセージを変更するにはどうすればよいですか?

分類Dev

Javaオブジェクトのフィールドの値を動的に(リフレクションにより)

分類Dev

@JsonSerialize - どのように実行時にラッパーを作成し、オブジェクトフィールドにデフォルトのシリアル化を使用するには?

分類Dev

ディクショナリオブジェクトを含むリストの場合、キーの値に基づいてリストをフィルタリングするにはどうすればよいですか?

分類Dev

jsonオブジェクトフィールドのプロパティによるマングース検索

分類Dev

バックボーンjs-json応答がドメインブックでラップされている場合、コレクションオブジェクトのフィールドをレンダリングできません

分類Dev

ブラザーのオールインワンプリンター/スキャナー/ファックス用のプロプライエタリドライバーをインストールするにはどうすればよいですか?

分類Dev

ポリモーフィズムによるC ++テンプレートメソッドのオーバーロードとクラスアクセス

分類Dev

クラスのオブジェクトのリストを、1つのフィールドが再び他のクラスのオブジェクトであるdatagridviewにバインドするにはどうすればよいですか?

分類Dev

クラスのオブジェクトのリストを、1つのフィールドが再び他のクラスのオブジェクトであるdatagridviewにバインドするにはどうすればよいですか?

分類Dev

テンプレートが静的バインディングであるにもかかわらず、古いコードのオブジェクトファイルがジェネリックプログラミングパラダイムを使用する新しいコードを使用できるのはなぜですか?

Related 関連記事

  1. 1

    ポリモーフィックオブジェクトのリストをオブジェクトフィールドに逆シリアル化する

  2. 2

    ポリモーフィックオブジェクトのリストをオブジェクトフィールドに逆シリアル化する

  3. 3

    オブジェクトのリストを含むテーブルをフィルタリングする-Swift

  4. 4

    ポリモーフィズムによるオブジェクトのスワッピング位置

  5. 5

    オンラインファイル/フォルダリストに表示されるすべてのファイルとサブディレクトリを含むHTTPディレクトリをダウンロードする方法

  6. 6

    リストからフィールドを含むオブジェクトを選択するためのSpring JPAプロパティ

  7. 7

    KeystoneJSリストCSVのダウンロード/エクスポートでリレーションシップフィールドタイプのオブジェクトIDを名前/タイトルに置き換える方法は?

  8. 8

    Pythonオブジェクト(リストなど)を含むパンダDataFrameのディープコピー

  9. 9

    リアクティブスプリングリポジトリで保存する前に、オブジェクトの複雑なフィールドをテキストフィールド(JSONとしてシリアル化)にマッピングする

  10. 10

    Django:クエリセットをランダムにシャッフルし、オブジェクトフィールドにアクセスします

  11. 11

    ジェネリッククラスのコンストラクターのオプションフィールドのデフォルト値

  12. 12

    Java 8オプション<T>、ストリームを使用して、真のブールフィールド値を含むオブジェクトのリストをループします。

  13. 13

    バックグラウンドスレッドでフリーズ可能なオブジェクトを作成する際のリソースリーク

  14. 14

    リフレクションを使用してすべてのオブジェクトプロパティ(プライベートを含む)を返す

  15. 15

    オプションオブジェクトスプリングブート-オブジェクトフィールドを取得する

  16. 16

    ジェネリックインターフェイスと演算子のオーバーロード-ジェネリックインターフェイスブロックからのプロシージャをモジュール内でプライベートに設定する方法は?

  17. 17

    tsconfigに、サーバーとクライアントをパブリックフォルダーとプライベートフォルダーにコンパイルするオプションはありますか?

  18. 18

    Windowsフォームのプロパティグリッドにカスタムオブジェクトのリストを適切に表示する

  19. 19

    ブートストラップのフォームコントロールのポップオーバーで必須フィールドのデフォルトメッセージを変更するにはどうすればよいですか?

  20. 20

    Javaオブジェクトのフィールドの値を動的に(リフレクションにより)

  21. 21

    @JsonSerialize - どのように実行時にラッパーを作成し、オブジェクトフィールドにデフォルトのシリアル化を使用するには?

  22. 22

    ディクショナリオブジェクトを含むリストの場合、キーの値に基づいてリストをフィルタリングするにはどうすればよいですか?

  23. 23

    jsonオブジェクトフィールドのプロパティによるマングース検索

  24. 24

    バックボーンjs-json応答がドメインブックでラップされている場合、コレクションオブジェクトのフィールドをレンダリングできません

  25. 25

    ブラザーのオールインワンプリンター/スキャナー/ファックス用のプロプライエタリドライバーをインストールするにはどうすればよいですか?

  26. 26

    ポリモーフィズムによるC ++テンプレートメソッドのオーバーロードとクラスアクセス

  27. 27

    クラスのオブジェクトのリストを、1つのフィールドが再び他のクラスのオブジェクトであるdatagridviewにバインドするにはどうすればよいですか?

  28. 28

    クラスのオブジェクトのリストを、1つのフィールドが再び他のクラスのオブジェクトであるdatagridviewにバインドするにはどうすればよいですか?

  29. 29

    テンプレートが静的バインディングであるにもかかわらず、古いコードのオブジェクトファイルがジェネリックプログラミングパラダイムを使用する新しいコードを使用できるのはなぜですか?

ホットタグ

アーカイブ