[解決済み] Python pandasです。選択した列をSeriesではなくDataFrameとして保持する
2022-09-14 21:59:34
質問
pandasのDataFrameから1つのカラムを選択する場合(例えば
df.iloc[:, 0]
,
df['A']
または
df.A
など)、結果として得られるベクトルは、1列のDataFrameではなく、自動的にSeriesに変換されます。しかし、私はDataFrameを入力引数として受け取る関数をいくつか書いています。したがって、私は、関数がdf.columnsがアクセス可能であると仮定できるように、Seriesではなく、シングルカラムのDataFrameを扱うことを希望します。今のところ、私は以下のようなものを使って、明示的にSeriesをDataFrameに変換しなければなりません。
pd.DataFrame(df.iloc[:, 0])
. これは、最もクリーンな方法とは思えません。DataFrameから直接インデックスを作成して、結果がSeriesではなく1列のDataFrameになるような、よりエレガントな方法はないでしょうか?
どのように解決するのですか?
Jeff が言及しているように、これを行うにはいくつかの方法がありますが、私は loc/iloc を使用してより明確にすることをお勧めします(そして、曖昧なことを試している場合は早期にエラーを発生させることができます)。
In [10]: df = pd.DataFrame([[1, 2], [3, 4]], columns=['A', 'B'])
In [11]: df
Out[11]:
A B
0 1 2
1 3 4
In [12]: df[['A']]
In [13]: df[[0]]
In [14]: df.loc[:, ['A']]
In [15]: df.iloc[:, [0]]
Out[12-15]: # they all return the same thing:
A
0 1
1 3
後者の2つの選択肢は、整数のカラム名の場合の曖昧さを取り除きます(まさにloc/ilocが作られた理由です)。例えば
In [16]: df = pd.DataFrame([[1, 2], [3, 4]], columns=['A', 0])
In [17]: df
Out[17]:
A 0
0 1 2
1 3 4
In [18]: df[[0]] # ambiguous
Out[18]:
A
0 1
1 3
関連
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] Pandasのカラム名のリネーム
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み] 既存のDataFrameに新しい列を追加する方法は?
-
[解決済み] Pandas DataFrameの特定の列の値がNaNである行を削除する方法
-
[解決済み] 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のSeriesと1列のDataFrameの違いは何ですか?
-
[解決済み] PythonでのAWS Lambdaのインポートモジュールエラー
-
[解決済み] Pandasのデータフレームでタプルの列を分割するにはどうしたらいいですか?
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] スペースがないテキストを単語のリストに分割する方法
-
[解決済み] Django 1.7で初期マイグレーションからマイグレートバックする方法は?
-
[解決済み] サブフォルダからのインポートモジュール
-
[解決済み] subprocess.run()の出力を抑制またはキャプチャするには?
-
[解決済み] Pythonの辞書にあるスレッドセーフについて
-
[解決済み] Django filter queryset __in for *every* item in list