[解決済み] Pandasのデータフレームで複数の列を選択する
質問
異なる列にデータがあるのですが、それを抽出して別の変数に保存する方法がわかりません。
index a b c
1 2 3 4
2 3 4 5
を選択するにはどうすればよいのでしょうか?
'a'
,
'b'
で、それをdf1に保存してください。
試してみた
df1 = df['a':'b']
df1 = df.ix[:, 'a':'b']
どれもうまくいかないようです。
解決方法は?
列名(文字列)は、あなたが試した方法ではスライスできません。
ここで、いくつかのオプションがあります。コンテキストからどの変数をスライスしたいのかがわかっている場合は
__getitem__
構文
(の部分)。
df1 = df[['a', 'b']]
また、名前ではなく数値でインデックスを作成することが重要な場合(例えば、最初の2つの列の名前を知らなくても、コードが自動的にこれを行うはずです)、代わりに次のようにすることができます。
df1 = df.iloc[:, 0:2] # Remember that Python does not slice inclusive of the ending index.
さらに、Pandasオブジェクトへのビューとそのオブジェクトのコピーの考え方に慣れる必要があります。上記のメソッドのうち最初のものは、目的のサブオブジェクト(目的のスライス)のメモリ内の新しいコピーを返します。
しかし、時々、Pandasのインデックス付けの慣習で、これを行わず、代わりに元のオブジェクトのサブオブジェクトやスライスと同じメモリのチャンクを参照するだけの新しい変数を与えることがあります。これは2番目のインデックスの方法で起こるので、それを修正するために
.copy()
メソッドで通常のコピーを取得します。このような場合、スライスされたオブジェクトと思われるものを変更すると、時に元のオブジェクトが変更されることがあります。常にこのことに気をつけるとよいでしょう。
df1 = df.iloc[0, 0:2].copy() # To avoid the case where changing df1 also changes df
を使用する場合
iloc
の場合、列の位置(またはインデックス)を知っている必要があります。列の位置は変化する可能性があるので、インデックスをハードコーディングする代わりに
iloc
とともに
get_loc
の機能
columns
メソッドを使用して、列のインデックスを取得します。
{df.columns.get_loc(c): c for idx, c in enumerate(df.columns)}
これで、この辞書を使って、名前と
iloc
.
関連
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] Pandasのカラム名のリネーム
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み] 既存のDataFrameに新しい列を追加する方法は?
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み] データフレーム列の名前によるドロップ
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
Python jiabaライブラリの使用方法について説明
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み] データ型が理解できない
-
[解決済み】 AttributeError: モジュール 'matplotlib' には属性 'plot' がない。
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?