【備忘録】データの形式を変換する(Python)
データフレームをリストにしたり、リストをシリーズにしたり、解析をしているとデータの形式を変換するばめんによく遭遇するのでまとめてみました。
import numpy as np import pandas as pd ''' (配列)リストから変換する ''' #データ df_list = [1, 2, 3] #numpy配列へ np.array(df_list) #Out[7]: array([1, 2, 3]) #Pandas.Seriesへ pd.Series(df_list) #Out[8]: #0 1 #1 2 #2 3 #dtype: int64 #Pandas.DataFrameへ pd.DataFrame(df_list) #Out[6]: # 0 #0 1 #1 2 #2 3 ''' Numpy配列から変換する ''' #データ df_ndarray = np.array([1, 2, 3], dtype=np.int32) #配列(リスト)へ list(df_ndarray) #Out[8]: [1, 2, 3] #Pandas.Seriesへ pd.Series(df_ndarray) #Out[9]: #0 1 #1 2 #2 3 #dtype: int32 #Pandas.DataFrameへ pd.DataFrame(df_ndarray) #Out[10]: # 0 #0 1 #1 2 #2 3 ''' Pandas.Seriesから変換する ''' #データ df_Series = pd.Series({'a':1, 'b':2, 'c':3}) #配列(リスト)へ list(df_Series) #Out[12]: [1, 2, 3] #辞書へ dict(df_Series) #Out[13]: {'a': 1, 'b': 2, 'c': 3} #numpy配列へ np.array(df_Series) #Out[14]: array([1, 2, 3], dtype=int64) #Pandas.DataFrameへ pd.DataFrame(df_Series) #Out[15]: # 0 #a 1 #b 2 #c 3 ''' Pandas.DataFrameから変換する ''' #データ df_DataFrame = pd.DataFrame({'data':[1,2,3]}) #配列(リスト)へ list(df_DataFrame.values.flatten()) #Out[17]: [1, 2, 3] df_DataFrame.values.tolist() #Out[20]: [[1], [2], [3]] #numpy配列へ np.array(df_DataFrame.values.flatten()) #Out[18]: array([1, 2, 3], dtype=int64) #Pandas.Seriesへ pd.Series(df_DataFrame.values.flatten()) #Out[19]: #0 1 #1 2 #2 3 #dtype: int64