[解決済み] Pandas Dataframe / Numpy Arrayの "axis "定義における曖昧さ
質問
Pythonの軸がどのように定義されるのか、また、DataFrameの行と列のどちらを参照するのかについて非常に混乱しています。以下のコードを考えてみてください。
>>> df = pd.DataFrame([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], columns=["col1", "col2", "col3", "col4"])
>>> df
col1 col2 col3 col4
0 1 1 1 1
1 2 2 2 2
2 3 3 3 3
ということで、もし
df.mean(axis=1)
を呼び出すと、行全体の平均が得られます。
>>> df.mean(axis=1)
0 1
1 2
2 3
しかし,もし
df.drop(name, axis=1)
を呼び出すと、実際には
列を削除します。
であり、行ではありません。
>>> df.drop("col4", axis=1)
col1 col2 col3
0 1 1 1
1 2 2 2
2 3 3 3
pandas/numpy/scipyの"axis"の意味を理解するのを誰か助けてくれませんか?
余談ですが
DataFrame.mean
は間違って定義されている可能性があります。のドキュメントによると
DataFrame.mean
は
axis=1
は行ではなく列の平均を意味するはずですが...。
どのように解決するのですか?
おそらく、次のように覚えるのが最も簡単でしょう。 0=下 であり 1=横 .
ということになります。
-
使用する
axis=0
を使用して、各列の下、または行のラベル(インデックス)にメソッドを適用します。 -
使用する
axis=1
を使用して、各行全体、または列のラベルにメソッドを適用します。
各軸が参照するDataFrameの部分を示す図です。
また、PandasがNumPyの使い方を踏襲していることを覚えておくと便利です。
axis
. この使い方は、NumPyの
用語集
:
軸は2次元以上の配列に対して定義されます。2次元の配列は2つの軸を持ちます。 行を越えて下向きに走るもの (軸 0) であり、2番目の軸は は列を水平に横切る (軸 1) . [ 私の強調 ]
では、質問のメソッドに関して。
df.mean(axis=1)
は正しく定義されているようです。それはエントリの平均を取る
列を横切る
つまり、個々の行に沿ったエントリーの平均を取ります。一方
df.mean(axis=0)
は垂直に作用する操作となります
行をまたいで下向きに作用する操作です。
.
同様に
df.drop(name, axis=1)
は、直感的に水平軸を横切るので、列ラベルに対するアクションを指します。指定する
axis=0
を指定すると、メソッドは代わりに行で動作するようになります。
関連
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み] 既存のDataFrameに新しい列を追加する方法は?
-
[解決済み] 一行ずつ追加してPandas Dataframeを作成する
-
[解決済み] Pandasのデータフレームから行を選択するために値のリストを使用する
-
[解決済み] Pandasシリーズ/DataFrame全体をプリティプリントする
-
[解決済み】Pandas DataFrameのカラムヘッダからリストを取得する。
-
[解決済み] サブフォルダからのインポートモジュール
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] pandasのaxisとはどういう意味ですか?
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] サブフォルダからのインポートモジュール
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] Pythonによる一対のクロスプロダクト [重複] (英語)
-
[解決済み] virtualenv の `--no-site-packages` オプションを元に戻す。
-
[解決済み] Pandasのデータフレーム内の文字列を'date'データ型に変換するにはどうしたらいいですか?
-
[解決済み] pycharmがタブをスペースに自動変換する
-
[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?