NaNがデータフレームピボットのインデックスと列になるのを防ぐ

Chrisvdberge

2列のすべての増分の値を含めるように拡張するデータフレームがあります。そのため、期待どおり、必要に応じてNaN値が導入されます。

ただし、このデータフレームでピボットを使用すると、NaNの行と列が取得されます。ピボットを行うときにこれを防ぐことはできますか?そうでない場合、NaNという名前の列を削除するにはどうすればよいですか?[NaN]、[nan]、または['NaN']を呼び出してドロップしようとしても機能しません。

この場合、列見出しとインデックスは海のヒートマッププロットに使用されるため、すべての値がNaNである列と行を削除しても機能しません。したがって、すべてのセル値がNaNであっても、インデックスとキー値として使用すると便利です。 NaNではありません

サンプルコード;

import pandas as pd
import numpy as np

#generate dummy data
df = pd.DataFrame({'Y': np.random.randint(130,140,10),
                   'X': np.random.randint(5,10,10),
                   'Z': np.random.randint(0,25, size=10)})
df = df.round(1)
#create dataset for heatmap
#group by axis to plot
df = df.groupby(['X','Y']).sum().reset_index()
df = df.sort_values(by=['Y'])
dfY = pd.DataFrame({'Y':np.arange(min(df['Y']), max(df['Y']),1)})
dfX = pd.DataFrame({'X':np.arange(min(df['X']), max(df['X']),1)})
df = pd.merge(df,dfY, how='outer', on='Y')
df = pd.merge(df,dfX, how='outer', on='X')
df = df.round(1)

print(df)
#restructure for heatmap
data = df.pivot("Y","X","Z").sort_values(by=['Y'],ascending=False)
print(data)

ピボット前のサンプルDataFrame:

      X      Y     Z
0   5.0  132.0   0.0
1   5.0  135.0  20.0
2   5.0  137.0  17.0
3   7.0  132.0  15.0
4   7.0  133.0   3.0
5   6.0  133.0  30.0
6   6.0  135.0  22.0
7   6.0  138.0  16.0
8   9.0  135.0   9.0
9   NaN  134.0   NaN
10  NaN  136.0   NaN
11  8.0    NaN   NaN

ピボット後:

X       NaN    5.0   6.0   7.0   8.0   9.0
Y                                         
 138.0   NaN   NaN  16.0   NaN   NaN   NaN
 137.0   NaN  17.0   NaN   NaN   NaN   NaN
 136.0   NaN   NaN   NaN   NaN   NaN   NaN
 135.0   NaN  20.0  22.0   NaN   NaN   9.0
 134.0   NaN   NaN   NaN   NaN   NaN   NaN
 133.0   NaN   NaN  30.0   3.0   NaN   NaN
 132.0   NaN   0.0   NaN  15.0   NaN   NaN
NaN      NaN   NaN   NaN   NaN   NaN   NaN

必要な出力:

X        5.0   6.0   7.0   8.0   9.0
Y                                         
 138.0   NaN  16.0   NaN   NaN   NaN
 137.0  17.0   NaN   NaN   NaN   NaN
 136.0   NaN   NaN   NaN   NaN   NaN
 135.0  20.0  22.0   NaN   NaN   9.0
 134.0   NaN   NaN   NaN   NaN   NaN
 133.0   NaN  30.0   3.0   NaN   NaN
 132.0   0.0   NaN  15.0   NaN   NaN
ジェズリール

drop欠測値で作業している私にとってnp.nan

data = (df.pivot("Y","X","Z")
         .sort_values(by=['Y'],ascending=False)
         .drop(np.nan, axis=1)
         .drop(np.nan))

または:

data = df.pivot("Y","X","Z").sort_values(by=['Y'],ascending=False)

data = data.reindex(index=data.index.difference([np.nan]),
                    columns=data.columns.difference([np.nan]))

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

数値以外のデータを含むインデックス列に重複があるピボット/ Groupbyデータフレーム

分類Dev

2つのPandasデータフレーム(ピボットされている)を列の階層インデックスとマージする方法

分類Dev

どのようにTypeErrorを防ぐことができますか:Pythonリストをnumpy配列にコピーするとき、リストのインデックスはタプルではなく整数でなければなりませんか?

分類Dev

複数の列をインデックスとして使用してdaskデータフレームをピボットする

分類Dev

インデックスと列が別のデータフレームの値であるPandasデータフレームにデータを入力する

分類Dev

デスクトップarchlinuxボックスがスリープ状態になるのを防ぐ

分類Dev

データフレームピボットの戻りエラー:インデックスに重複するエントリが含まれています

分類Dev

特定のインデックス名(文字列)を新しいデータフレームにコピーする

分類Dev

インデックスとして2つの列を持つデータフレームをピボットします

分類Dev

パンダのデータフレームインデックスは、データフレームのサブセットにインデックスを付けるときに問題を引き起こします。インデックスを削除するにはどうすればよいですか、またはエラーの発生を防ぐにはどうすればよいですか?

分類Dev

Python:パンダのデータフレームを変換して、インデックスと列のIDが行の要素になるようにします

分類Dev

Pandasデータフレームのマルチインデックスを使用したピボット

分類Dev

スクロールなしボタンがページのトップに戻るのを防ぐ

分類Dev

データフレームの値を列に「ピボット」する方法

分類Dev

配列をScalaの列とインデックスを持つデータフレームに変換する

分類Dev

連結されたデータフレームを使用すると、「IndexError:文字列インデックスが範囲外」になるのはなぜですか

分類Dev

スタックレイアウトフォームのラベルが途切れるのを防ぐ方法

分類Dev

値がnullで、nanがないelasticsearchのパンダデータフレームにインデックスを付ける

分類Dev

日時インデックスの粒度が異なるデータフレーム列を減算する

分類Dev

欠測データのあるリストと列を組み合わせてデータフレームを作成する、strsplit、インデックスなし

分類Dev

他のデータフレームの行と列の情報に基づいてデータフレームにインデックスを付ける

分類Dev

フォーム内のボタンがクリックされたときにページの更新を防ぐ

分類Dev

パンダのデータフレームをピボットして、マルチインデックスの列を作成します

分類Dev

戻るボタンにonbeforeunloadを使用するが、フォームの送信と内部ページのリダイレクトを防ぐ方法

分類Dev

ピボットデータフレームのインデックスを特定のユーザー定義の順序で並べ替える

分類Dev

追加の列を重複排除しながらPandasデータフレームをピボットする

分類Dev

マイクロソフトボットフレームワークのテキストデータにライブスピーチを追加する方法(正確にはグーグルスピーチが行うこと)

分類Dev

フレックスダッシュボードコンテナで追加のテキストによってテーブル(データテーブル)が切り捨てられるのを防ぐにはどうすればよいですか?

分類Dev

リストRの各データフレームにインデックス列を追加する

Related 関連記事

  1. 1

    数値以外のデータを含むインデックス列に重複があるピボット/ Groupbyデータフレーム

  2. 2

    2つのPandasデータフレーム(ピボットされている)を列の階層インデックスとマージする方法

  3. 3

    どのようにTypeErrorを防ぐことができますか:Pythonリストをnumpy配列にコピーするとき、リストのインデックスはタプルではなく整数でなければなりませんか?

  4. 4

    複数の列をインデックスとして使用してdaskデータフレームをピボットする

  5. 5

    インデックスと列が別のデータフレームの値であるPandasデータフレームにデータを入力する

  6. 6

    デスクトップarchlinuxボックスがスリープ状態になるのを防ぐ

  7. 7

    データフレームピボットの戻りエラー:インデックスに重複するエントリが含まれています

  8. 8

    特定のインデックス名(文字列)を新しいデータフレームにコピーする

  9. 9

    インデックスとして2つの列を持つデータフレームをピボットします

  10. 10

    パンダのデータフレームインデックスは、データフレームのサブセットにインデックスを付けるときに問題を引き起こします。インデックスを削除するにはどうすればよいですか、またはエラーの発生を防ぐにはどうすればよいですか?

  11. 11

    Python:パンダのデータフレームを変換して、インデックスと列のIDが行の要素になるようにします

  12. 12

    Pandasデータフレームのマルチインデックスを使用したピボット

  13. 13

    スクロールなしボタンがページのトップに戻るのを防ぐ

  14. 14

    データフレームの値を列に「ピボット」する方法

  15. 15

    配列をScalaの列とインデックスを持つデータフレームに変換する

  16. 16

    連結されたデータフレームを使用すると、「IndexError:文字列インデックスが範囲外」になるのはなぜですか

  17. 17

    スタックレイアウトフォームのラベルが途切れるのを防ぐ方法

  18. 18

    値がnullで、nanがないelasticsearchのパンダデータフレームにインデックスを付ける

  19. 19

    日時インデックスの粒度が異なるデータフレーム列を減算する

  20. 20

    欠測データのあるリストと列を組み合わせてデータフレームを作成する、strsplit、インデックスなし

  21. 21

    他のデータフレームの行と列の情報に基づいてデータフレームにインデックスを付ける

  22. 22

    フォーム内のボタンがクリックされたときにページの更新を防ぐ

  23. 23

    パンダのデータフレームをピボットして、マルチインデックスの列を作成します

  24. 24

    戻るボタンにonbeforeunloadを使用するが、フォームの送信と内部ページのリダイレクトを防ぐ方法

  25. 25

    ピボットデータフレームのインデックスを特定のユーザー定義の順序で並べ替える

  26. 26

    追加の列を重複排除しながらPandasデータフレームをピボットする

  27. 27

    マイクロソフトボットフレームワークのテキストデータにライブスピーチを追加する方法(正確にはグーグルスピーチが行うこと)

  28. 28

    フレックスダッシュボードコンテナで追加のテキストによってテーブル(データテーブル)が切り捨てられるのを防ぐにはどうすればよいですか?

  29. 29

    リストRの各データフレームにインデックス列を追加する

ホットタグ

アーカイブ