python は特定の列を選択する - pandas の iloc と loc と icol の使用 (列のスライシングと行のスライシング)
2022-02-28 13:45:06
Suppose df is a dataframe with column names A B C D
as follows.
A B C D
0 ss 小红 8
1 aa 小明 d
4 f f
6 ak 小紫 7
The attributes in dataframe are not specified, and the null value defaults to NA.
I. Select the columns labeled A and C, and the selected object type is still dataframe
df = df.loc[:, ['A', 'C']]
df = df.iloc[:, [0, 2]]
Second, select the label C and only take the first two lines, and the selected object type or dataframe
df = df.loc[0:2, ['A', 'C']]
df = df.iloc[0:2, [0, 2]]
The smart ones can already see the difference between iloc and loc: loc picks columns based on the specific label of the dataframe, while iloc counts from 0 based on where the label is located. ", the
" in front of the ": " that the selection of the entire column, the second example of 0:2 that the selection of the 0th line to the second line, where the 0:2 equivalent to [0,2) before closed after open, 2 is not in the range.
Note that in the case of
df = df.loc[0:2, ['A', 'C']]
or
df = df.loc[0:2, ['A', 'C']]
The type after slicing is still a dataframe, so you can't add, subtract, multiply, or divide directly.
For example, if one column of the dataframe is the math grade (shuxue) and the other is the language grade (yuwen), and now you need to ask for the sum of the two courses, you can use
df['shuxue'] + df['yuwen'] # After selecting, the type is series
to get the total score, instead of using
df.iloc[:,[2]]+df.iloc[:,[1]]
or
df.iloc[:,['shuxue']]+df.iloc[:,['yuwen']]
This produces an error result.
There is also a way to use df.icol(i) to select the column, select the end of not dataframe but series, i for the column where the position, counting from 0.
If you want to select a row of data, you can use df.loc[[i]] or df.iloc[[i]].
A B C D
0 ss 小红 8
1 aa 小明 d
4 f f
6 ak 小紫 7
The attributes in dataframe are not specified, and the null value defaults to NA.
I. Select the columns labeled A and C, and the selected object type is still dataframe
df = df.loc[:, ['A', 'C']]
df = df.iloc[:, [0, 2]]
Second, select the label C and only take the first two lines, and the selected object type or dataframe
df = df.loc[0:2, ['A', 'C']]
df = df.iloc[0:2, [0, 2]]
The smart ones can already see the difference between iloc and loc: loc picks columns based on the specific label of the dataframe, while iloc counts from 0 based on where the label is located. ", the
" in front of the ": " that the selection of the entire column, the second example of 0:2 that the selection of the 0th line to the second line, where the 0:2 equivalent to [0,2) before closed after open, 2 is not in the range.
Note that in the case of
df = df.loc[0:2, ['A', 'C']]
or
df = df.loc[0:2, ['A', 'C']]
The type after slicing is still a dataframe, so you can't add, subtract, multiply, or divide directly.
For example, if one column of the dataframe is the math grade (shuxue) and the other is the language grade (yuwen), and now you need to ask for the sum of the two courses, you can use
df['shuxue'] + df['yuwen'] # After selecting, the type is series
to get the total score, instead of using
df.iloc[:,[2]]+df.iloc[:,[1]]
or
df.iloc[:,['shuxue']]+df.iloc[:,['yuwen']]
This produces an error result.
There is also a way to use df.icol(i) to select the column, select the end of not dataframe but series, i for the column where the position, counting from 0.
If you want to select a row of data, you can use df.loc[[i]] or df.iloc[[i]].
関連
-
[解決済み】Python enumerate() tqdm ファイル読み込み時にプログレスバーが出る?
-
TclError 表示名がない、$DISPLAY 環境変数がない問題が解決されました。
-
[解決済み] AttributeError("'str' object has no attribute 'read'")
-
[解決済み] セッションが作成されない。このバージョンのChromeDriverは、Chromeバージョン88のみをサポートしています。
-
[解決済み] fastT5 を使用して T5 モデルを onnx にエクスポートするときに "RuntimeError:output with shape [5, 8, 1, 2] doesn't match the broadcast shape [5, 8, 2, 2]" が発生する。
-
[解決済み] PyCharm Community Editionでマウスの右クリックコンテキストメニューからDjangoアプリケーションのUnitTestsを実行/デバッグしますか?
-
[解決済み] Visual Studio Codeのシンタックスハイライトが機能しない
-
[解決済み] Pythonです。Unicode and "\xe2x80</p> <p>Driving me batty
-
Python3 は、No module named ... に遭遇しました。
-
Python 3.6: "Guess the Number Game" TypeError: '<' は 'str' と 'int' のインスタンスの間でサポートされていません。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】NameError: グローバル名 'unicode' が定義されていない - Python 3 の場合
-
[解決済み】TypeErrorの修正方法。Unicode-オブジェクトはハッシュ化する前にエンコードする必要があります。
-
[解決済み】ImportError: Missing required dependencies ['numpy'] (必要な依存関係がありません)
-
[解決済み】「NameError: name 'df' is not defined」が発生するのはなぜですか?
-
エラー: true_divide で無効な値が発生しました。
-
Pygameのスプライトと衝突検出の使い方
-
[解決済み] 関数に必要な位置引数が2つありません。x' と 'y'
-
[解決済み] ODBC SQLタイプ -155はまだサポートされていません。
-
SQL Server に接続するための Django の設定ガイドライン
-
numpy.unravel_indexの説明