サンプルDataFrameを作成

投稿者: | 2021-11-12

DataFrameをつくる


目次

df = pd.DataFrame(***)

  • ***箇所にdictまたはndarrayをプロットする
import pandas as pd

df = pd.DataFrame({'A': ['A1', 'A2', 'A3'],
                   'B': ['B1', 'B2', 'B3'],
                   'C': ['C1', 'C2', 'C3']},
                  index=['ONE', 'TWO', 'THREE'])

# 以下でも表現可能
df2 = pd.DataFrame(
    dict(
        A=[2,4,6], <- 列名はひらながであってもクォート不要。
        B=[1,2,3],
        C=[3,6,9],
    ),index=['ONE', 'TWO', 'THREE'])

print(df)

#         A   B   C
# ONE    A1  B1  C1
# TWO    A2  B2  C2
# THREE  A3  B3  C3

np.random.rand()

np.random.rand(3)
# array([0.7190074 , 0.16212554, 0.21742763])

np.random.rand(3,3)
# array([[0.98322407, 0.89081746, 0.07943414],
#        [0.27022751, 0.44287428, 0.72649375],
#        [0.96211493, 0.78385493, 0.19552369]])

np.random.randint()

  • 〜randint(start, end, (行数, 列数))
  • pd.DataFrame(np.random.randint(100, 1000, (10, 4)), columns=list(‘ABCD’)))
np.random.randint(1, 11, (3,3))
# array([[ 6,  9, 10],
#        [10,  4,  4],
#        [ 3, 10,  4]])

np.arange()、reshape()

np.arange(5)
# array([0, 1, 2, 3, 4])

np.arange(3, 10)
# array([3, 4, 5, 6, 7, 8, 9])

np.arange(9).reshape((3,3))
# array([[0, 1, 2],
#        [3, 4, 5],
#        [6, 7, 8]])
data = np.arange(9).reshape(3,3)
df1 = pd.DataFrame(data, columns=list('ABC'), index=list('XYZ'))
df1

その他

data = np.arange(9).reshape(3,3)
columns = list('ABC')
index = ['row' + str(i) for i in range(3)]
pd.DataFrame(data, index=index, columns=columns)

ランダムデータからサンプルDFを作成

col = {'area': ['北海道', '東北', '東京', '中部', '関西', '中国', '四国', '九州', '沖縄'],
       'plan': ['Aプラン', 'Bプラン', 'Cプラン'],}

def get_col_list(col_name):
    rand_num = np.random.randint(0, len(col[col_name]))
    col_val = col[col_name][rand_num]
    return col_val
# データ作成
area_data = [get_col_list('area') for i in list(range(100))]
plan_data = [get_col_list('plan') for i in list(range(100))]

uriage_data = [np.random.randint(1000,20000) for i in range(100)]
data = {
    'エリア': area_data,
    'プラン': plan_data,
    '売上額': uriage_data,
    }

df = pd.DataFrame(data)
df

Seriesから作成

df4 = pd.DataFrame(
    data={'列1': pd.Series([10, 20, 30, 40]), 
          '列2': pd.Series([50, 60, 70, 80]),
          '列3': pd.Series(['a', 'b', 'c', 'd'])}
)

df4