hereという比較的単純なデータフレームを扱う答えはすでにあります。NaN行でのデータフレームの分割
しかし、私が手にしているデータフレームには、複数の列と多数の行があります。 1つのデータフレームには、軸= 0に沿って3つのデータフレームが添付されています。 (一方の下端は次の頂点に接続されています。)それらはNaN値の行で区切られています。
この1つのデータからNaNの行に沿って3つのデータフレームを分割すると、どうすれば作成できますか?リンクされた答えのように
hereという比較的単純なデータフレームを扱う答えはすでにあります。NaN行でのデータフレームの分割
しかし、私が手にしているデータフレームには、複数の列と多数の行があります。 1つのデータフレームには、軸= 0に沿って3つのデータフレームが添付されています。 (一方の下端は次の頂点に接続されています。)それらはNaN値の行で区切られています。
この1つのデータからNaNの行に沿って3つのデータフレームを分割すると、どうすれば作成できますか?リンクされた答えのように
、あなたはグループ番号を識別する列を作成します。同じソリューションを適用することができます。
これを行うには、行のすべての値がNaN
になるようにテストする必要があります。そのようなテストがpandas
に組み込まれているかどうかわかりませんが、pandas
は、シリーズがNaN
でいっぱいになっているかどうかを確認するテストがあります。あなたが分割するその答えから同じ技術を使用することができますその時点で
df["group_no"] = df.T.isnull().all().cumsum()
:だから何がやりたいことは、あなたの「Series
」は実際にあなたの行になるように、あなたのデータフレームの転置にそれを実行することですデータフレーム。
結果にNaN
の行が残っているので、最後に.dropna()
を実行するとよいでしょう。
転置する必要はなく、 'df.isnull()。all(axis = 1).cumsum()'を実行するだけです。 – root
ああ、愚かな私! 'isnull'が' axis'パラメータをとり、 'all'をチェックしなかったのを見ていました:-) – Mikk