DataFrameをつくる
- ここがわかりやすい:【Python】pandasのデータフレームを作成する方法6つ
目次
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 C3np.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