はじめに
データ処理の際まずはPandas.DataFrame
としてcsvやHTMLを読み、NumPy.ndarray
で数値計算という流れが多い(気がする。)
Pandas.DataFrameで読んだもののNumPy.ndarrayに変換できない、、、などかなり苦戦したので、二者間のやり取りの覚書を置いておきます。
import pandas as pd
import numpy as np
結論
Pandas.DataFrame(df
) ↔ Numpy.ndarray(arr
)の相互変換
Pandas.DataFrame → NumPy.ndarrayはarr = df.to_numpy()
NumPy.ndarray → Pandas.DataFrameはdf = pd.DataFrame(arr)
注意点
Pandas.DataFrameからNumPy.ndarrayに変換するとラベル情報がなくなります。
NumPy.ndarrayからPandas.DataFrameに戻す際は必要に応じてcolumnsとindexを定義してあげるとよさげ。
df = pd.DataFrame(arr,
columns = ["a","b","c"],
index = ["u","v","w"])
Pandas.DataFrame → NumPy.ndarray
pandas→numpy
# dictionaryからPandas.DataFrameを定義する
dict1 = {"a":[1,2,3],"b":[1,2,3],"c":[1,2,3]}
df = pd.DataFrame(dict1)
print(df)
# a b c
# 0 1 1 1
# 1 2 2 2
# 2 3 3 3
# Pandas.DataFrameをNumPy.ndarrayに変換する
arr = df.to_numpy()
print(arr)
# [[1 1 1]
# [2 2 2]
# [3 3 3]]
NumPy.ndarray → Pandas.DataFrame
numpy→pandas
# listからNumPy.ndarrayを定義
list1 = [[1,2,3],[1,2,3],[1,2,3]]
arr = np.array(list1)
print(arr)
# [[1 2 3]
# [1 2 3]
# [1 2 3]]
# NumPy.ndarrayをPandas.DataFrameに変換する
df = pd.DataFrame(arr,
columns = ["a","b","c"],
index = ["u","v","w"])
print(df)
# a b c
# u 1 2 3
# v 1 2 3
# w 1 2 3