複数のデータを空のdataframeから生成し、結合する方法[Python][Pandas]

7月 25, 2020

以下に3つのdataframe生成し、結合するスクリプトを示す。
pd.concatを使うと、dataframeを縦連結することができる。あまり使わないと思うが、axisのオプションで横連結にすることも可能だ。

import pandas as pd

df1 = pd.DataFrame()

for i in range(5):
    tmp_series = pd.Series([i, i*i])
    df1 = df1.append(tmp_series, ignore_index=True)
    
df2 = pd.DataFrame()
    
for i in range(5, 10):
    tmp_series = pd.Series([i, i*i])
    df2 = df2.append(tmp_series, ignore_index=True)
    
df3 = pd.DataFrame()
    
for i in range(10, 15):
    tmp_series = pd.Series([i, i*i])
    df3 = df3.append(tmp_series, ignore_index=True)
    
df4 = pd.concat([df1, df2, df3])
    
df4.columns = ["i", "i^2"]

df4 = df4.reset_index(drop=True)

print(df4)

出力

       i    i^2
0    0.0    0.0
1    1.0    1.0
2    2.0    4.0
3    3.0    9.0
4    4.0   16.0
5    5.0   25.0
6    6.0   36.0
7    7.0   49.0
8    8.0   64.0
9    9.0   81.0
10  10.0  100.0
11  11.0  121.0
12  12.0  144.0
13  13.0  169.0
14  14.0  196.0

以下のように、各データフレームを生成するごとに、ラベル名を定義しても良い。

import pandas as pd

df1 = pd.DataFrame()

for i in range(5):
    tmp_series = pd.Series([i, i*i])
    df1 = df1.append(tmp_series, ignore_index=True)
df1.columns = ["i", "i^2"]
    
df2 = pd.DataFrame()
    
for i in range(5, 10):
    tmp_series = pd.Series([i, i*i])
    df2 = df2.append(tmp_series, ignore_index=True)
df2.columns = ["i", "i^2"]
    
df3 = pd.DataFrame()
    
for i in range(10, 15):
    tmp_series = pd.Series([i, i*i])
    df3 = df3.append(tmp_series, ignore_index=True)
df3.columns = ["i", "i^2"]

df4 = df4.reset_index(drop=True)

print(df4)

Uncategorizedpandas,Python

Posted by vastee