numpyとpandasの基本機能まとめ
Author: 水卜
Author: 水卜
import numpy as np
# 二次元配列
sample = np.array([[1, 2], [3, 4]])
# 行数/列数取得
sample.shape
# 等差数列の作成
sample2 = np.arange(start=1, stop=5, step=1)
# array([1, 2, 3, 4])
# 同じ値の配列
sample3 = np.tile(0, 4)
# array([0, 0, 0, 0])
# ゼロ埋め
sample4 = np.zeros(5)
# array([0., 0., 0., 0., 0.])
# slice
sample5 = np.array([1, 2, 3, 4])
sample5[1:3] # array([2, 3])
# 二次元のslice
sample6 = np.array([
[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10]
])
sample6[0, 3] # 4
sample6[1, 1:3] # array([7, 8])
import pandas as pd
# DataFrameの基本。列が異なれば、数値と文字列を混在させることが可能
sample_df = pd.DataFrame({
'col1': sample2,
'col2': sample2 * 2,
'col3': ['a', 'b', 'c', 'd']
})
print(sample_df)
# col1 col2 col3
# 0 1 2 a
# 1 2 4 b
# 2 3 6 c
# 3 4 8 d
sample_df # Jupyterで綺麗なtableが表示される
data = pd.read_csv('./sample.csv')
data
df1 = pd.DataFrame({
'col1': np.array([1, 2, 3]),
'col2': np.array(['a', 'b', 'c'])
})
df2 = pd.DataFrame({
'col1': np.array([4, 5, 6]),
'col2': np.array(['d', 'e', 'f'])
})
# 縦結合
print(pd.concat([df1, df2]))
# col1 col2
# 0 1 a
# 1 2 b
# 2 3 c
# 0 4 d
# 1 5 e
# 2 6 f
# 横結合
print(pd.concat([df1, df2], axis=1))
# col1 col2 col1 col2
# 0 1 a 4 d
# 1 2 b 5 e
# 2 3 c 6 f
sample_df = pd.DataFrame({
'col1': sample2,
'col2': sample2 * 2,
'col3': ['a', 'b', 'c', 'd']
})
print(sample_df)
# 列を指定
print(sample_df.col2)
# 2列取得
print(sample_df[['col1', 'col2']])
# 特定列をなくす
print(sample_df.drop('col1', axis=1))
# 最初の2行
print(sample_df.head(n=2))
# index指定
print(sample_df.query('index == 1'))
# col3 == a
print(sample_df.query('col3 == "a"'))
# or
print(sample_df.query('col3 == "a" | col3 == "c"'))
# and
print(sample_df.query('col3 == "a" & col1 ==1'))
# 列をnumpy配列に変換
np.array(sample_df.col2)