行に関して
- 取得したいもの
- 行名
- 行番号
- 1行すべて
行名が知りたい (DataFrame中にある全部の)
# 方法1
list(df.index)
# 方法2
df.index.values
行名が知りたい (既知の列中にある既知の要素名から)
df.query('既知の列名 == "既知の要素名"')
行番号が知りたい (既知の行名から)
# 1行分の行番号だけ取得
df.index.get_loc('既知の行名')
# 複数行分の行番号を取得
df.index.get_indexer(['既知の行名1', '既知の行名2'])
行番号が知りたい (既知の列中にある既知の要素名から)
list(df.reset_index().query('既知の列名 == "既知の要素名"').index)
行番号が知りたい (条件指定で)
# "Col2" 列の要素のうち25より大きい要素の行番号
df.index[df['Col2'] > 25].tolist()
行ごと抽出
# 方法1
df.loc[df["既知の列名"] == 抽出条件である値]
# 方法2の複数条件ver.
df.loc[(df["既知の列名1"] == 値1) | (df["既知の列名2"] == 値2)]
# 方法3
df.loc[['抽出したい行名1', '抽出したい行名2']]
列に関して
- 取得したいもの
- 列名
- 列番号
- 1列すべて
列名が知りたい(DataFrame中にある全部の)
# 方法1
list(df.columns)
# 方法2
df.columns.values
列名が知りたい (条件指定)
# 0行目の値が2より大きい列の列名を取得
df.columns[df.iloc[0] > 2].tolist()
列番号が知りたい (既知の列名から)
# 1列分の列番号のみ取得
df.columns.get_loc('既知の列名')
# 複数列分の列番号を取得
df.columns.get_indexer(['既知の列名1', '既知の列名2'])
列番号が知りたい (条件指定で)
# 0行目の値が2より大きい列の列名を取得
matching_columns = df.columns[df.iloc[0] > 2].tolist()
# 列名リストにおける列番号を繰り返し文で取得
[df.columns.get_loc(col) for col in matching_columns]
列ごと抽出
# 方法1
df[['既知の列名1', '既知の列名2']]
# 方法2
df.loc[:, ['既知の列名1', '既知の列名2']]
要素に関して
- 取得したいもの
- 要素の住所(行番号・列番号)
- 要素そのもの