LoginSignup
7
7

More than 1 year has passed since last update.

Pandas.DataFrameとNumPy.ndarray間の変換

Last updated at Posted at 2022-06-27

はじめに

データ処理の際まずは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
7
7
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7