[解決済み] Boolean シリーズのキーは、DataFrame のインデックスと一致するように再インデックス化されます。
質問事項
以下は、私がエラーに遭遇したときの様子です。
df.loc[a_list][df.a_col.isnull()]
のタイプは
a_list
は
Int64Index
これは,行番号のリストを含んでいます.これらの行インデックスが属するのは
df
.
は
df.a_col.isnull()
の部分は、フィルタリングのために必要な条件です。
以下のコマンドを個別に実行しても、警告は出ません。
df.loc[a_list]
df[df.a_col.isnull()]
しかし、それらを並べると
df.loc[a_list][df.a_col.isnull()]
という警告メッセージが表示されます(ただし結果は表示されます)。
Boolean SeriesのキーはDataFrameのインデックスと一致するように再インデックス化されます。
このエラーメッセージの意味は何ですか?返される結果に影響するのでしょうか?
解決方法は?
警告が出てもあなたのやり方は通用しますが、暗黙的で不明確な動作に依存しないのが一番です。
解決策1
のインデックスを選択するようにします。
a_list
をブーリアンマスクとする。
df[df.index.isin(a_list) & df.a_col.isnull()]
解決策2 は、2つのステップで行ってください。
df2 = df.loc[a_list]
df2[df2.a_col.isnull()]
解決策3 一行で済ませたい場合は、以下のようなトリックを使用します。 ここで :
df.loc[a_list].query('a_col != a_col')
この警告は、ブール型ベクトルである
df.a_col.isnull()
の長さは
df
一方
df.loc[a_list]
の長さである。
a_list
つまり、より短い。したがって
df.a_col.isnull()
にはありません。
df.loc[a_list]
.
pandasが行うのは、呼び出したデータフレームのインデックスを元にboolean系列のインデックスを付け直すことです。事実上、それは
df.a_col.isnull()
のインデックスに対応する値は
a_list
. これは動作しますが、動作は暗黙的であり、将来簡単に変更される可能性があるため、このような警告が出ているのです。
関連
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み] Pandasシリーズ/DataFrame全体をプリティプリントする
-
[解決済み] pandasのデータフレームのインデックスをカラムに変換する方法
-
[解決済み] pandas DataFrameの特定のセルに対して、インデックスを使用して値を設定する
-
[解決済み] PandasのGroupByの出力をSeriesからDataFrameに変換する
-
[解決済み] pandas series/dataframeの行を整数インデックスで選択する。
-
[解決済み】Pandasでシリーズ/データフレームのカラムを条件付きで作成する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonの非常に便利な2つのデコレーターを解説
-
ピロウズ画像色処理の具体的な活用方法
-
Python関数の高度な応用を解説
-
Python カメの描画コマンドとその例
-
PythonはWordの読み書きの変更操作を実装している
-
python implement mysql add delete check change サンプルコード
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み】django インポートエラー - core.managementという名前のモジュールがない