kozzy’s blog

Ruby, Python, PHP, React.js あたりで学んだこと、記事、読んだ本のまとめなどを垂れ流しする場の予定です

Pandas よく使うものまとめ(更新中)

参考リンク

note.nkmk.me

qiita.com

基本操作

ラベルを使ってデータを選択する <Series.loc>

import pandas as pd
ser = pd.Series([1, 2, 3], index =['a', 'b', 'c'])

ser

# a 1
# b 2 
# c 3 
# dtype: int 64

ser.loc['b']

# 2

ser.loc['b':'c']

# b 2
# c 3
# dtype: int64

ser.loc['a','c']

# a 1
# c 3
# dtype: int64

位置を指定してデータを選択する <Series.iloc>

import pandas as pd
ser = pd.Series([1, 2, 3], index =['a', 'b', 'c'])

ser.iloc[1]

# 2

ser.iloc[1:3]

# b 2
# c 3

真偽値を使ってデータを選択する <Series.loc, Series.iloc>

import pandas as pd
ser = pd.Series([1, 2, 3], index =['a', 'b', 'c'])


ser.loc[[True, False, True]]

# a 1
# c 3
# dtype: int64

ser != 2

# a True
# b False
# c True
# dtype: bool

ser.loc[ser != 2]

# a 1
# c 3
# dtype: int64

DataFrame の作成

import pandas as pd

df = pd.DataFrame(
  [[1,10,100], [2,20,200], [3,30,300]],
  index=['r1','r2','r3'],
  columns=['c1','c2','c3'])

df

#     c1  c2   c3
# r1   1  10  100
# r2   2  20  200
# r3   3  30  300

ラベルを使ってデータを選択する <DataFrame.loc>

df = pd.DataFrame(
  [[1,10,100], [2,20,200], [3,30,300]],
  index=['r1','r2','r3'],
  columns=['c1','c2','c3'])

df.loc['r2','c2']

# 20

df.loc['r2', :]

# c1      2
# c2     20
# c3    200
# Name: r2, dtype: int64


# スライスやリストの渡し方

df.loc[['r1','r3'],'c2':'c3']

#     c2   c3
# r1  10  100
# r3  30  300

iloc を使ってデータを選択する <DataFrame.iloc>

df = pd.DataFrame(
  [[1,10,100], [2,20,200], [3,30,300]],
  index=['r1','r2','r3'],
  columns=['c1','c2','c3'])

df.iloc[1:3,[0,2]]

#    c1   c3
# r2   2  200
# r3   3  300