MENU
  • ホーム
  • Contact Us
Hayashi's discovery-oriented learning | 地域研究と分析の林
地域研究と分析の林
  • ホーム
  • Contact Us
地域研究と分析の林
  • ホーム
  • Contact Us
Youtubeチャンネルはこちら(鉄道趣味メイン)
  1. ホーム
  2. データ前処理と即席可視化
  3. データフレーム処理1 ~データへのアクセスと抽出~

データフレーム処理1 ~データへのアクセスと抽出~

行に関して

  • 取得したいもの
    • 行名
    • 行番号
    • 1行すべて

行名が知りたい (DataFrame中にある全部の)

# 方法1
list(df.index)
# 方法2
df.index.values
row.names(df)

行名が知りたい (既知の列中にある既知の要素名から)

df.query('既知の列名 == "既知の要素名"')
# 1行
df[df$列名=="行名を知りたい要素",]
# 複数行
df[df$列名==c("行名を知りたい要素1","行名を知りたい要素2"),]

行番号が知りたい (既知の行名から)

# 1行分の行番号だけ取得
df.index.get_loc('既知の行名')

# 複数行分の行番号を取得
df.index.get_indexer(['既知の行名1', '既知の行名2'])
# 1行分の行番号だけ
which(rownames(df) == '既知の行名')

# 複数行分の行番号を取得
which(rownames(df) %in% c('既知の行名1', '既知の行名2'))

行番号が知りたい (既知の列中にある既知の要素名から)

list(df.reset_index().query('既知の列名 == "既知の要素名"').index)
library(dplyr)
df <- df %>% 
  mutate(index = row_number()) %>% 
  filter(`既知の列名` == "既知の要素名") %>% 
  pull(index)
result <- list(df)

行番号が知りたい (条件指定で)

# "Col2" 列の要素のうち25より大きい要素の行番号
df.index[df['Col2'] > 25].tolist()
# "Col2" 列の要素のうち25より小さい要素の行番号
which(df$Col2 < 25)

行ごと抽出

# 方法1
df.loc[df["既知の列名"] == 抽出条件である値]
# 方法2の複数条件ver.
df.loc[(df["既知の列名1"] == 値1) | (df["既知の列名2"] == 値2)]
# 方法3
df.loc[['抽出したい行名1', '抽出したい行名2']]
# 方法1
subset(df, df$既知の列名 == 抽出条件である値)
# 方法2の複数条件ver.
subset(df, df$既知の列名1 == 値1 | df$既知の列名2 == 値2)
# 方法3
df[c('抽出したい行名1', '抽出したい行名2'), ]

列に関して

  • 取得したいもの
    • 列名
    • 列番号
    • 1列すべて

列名が知りたい(DataFrame中にある全部の)

# 方法1
list(df.columns)
# 方法2
df.columns.values
colnames(df)

列名が知りたい (条件指定)

# 0行目の値が2より大きい列の列名を取得
df.columns[df.iloc[0] > 2].tolist()
colnames(df)[df[1, ] > 2]

列番号が知りたい (既知の列名から)

# 1列分の列番号のみ取得
df.columns.get_loc('既知の列名')

# 複数列分の列番号を取得
df.columns.get_indexer(['既知の列名1', '既知の列名2'])
# 1列分の列番号のみ取得
which(names(df) == '既知の列名')

# 複数列分の列番号を取得
which(names(df) %in% c('既知の列名1', '既知の列名2'))

列番号が知りたい (条件指定で)

# 0行目の値が2より大きい列の列名を取得
matching_columns = df.columns[df.iloc[0] > 2].tolist()
# 列名リストにおける列番号を繰り返し文で取得
[df.columns.get_loc(col) for col in matching_columns]
# 1行目の値が2より大きい列の列名を取得
condition <- df[1, ] > 2
matching_columns <- names(df)[condition]
# 列番号を取得
which(names(df) %in% matching_columns)

列ごと抽出

# 方法1
df[['既知の列名1', '既知の列名2']]
# 方法2
df.loc[:, ['既知の列名1', '既知の列名2']]
df[, c('既知の列名1', '既知の列名2')]

要素に関して

  • 取得したいもの
    • 要素の住所(行番号・列番号)
    • 要素そのもの




スポンサーリンク
新着記事
  • 鳳派出所の風景(後編)
  • 鳳派出所の風景(中編)
  • 鳳派出所の風景(前編)
おすすめ

Youtubeチャンネル
https://www.youtube.com/watch?v=w2q30VHcXj4
  • ホーム
  • Contact Us

© 地域研究と分析の林.

目次