Pandas の concat 関数
-
pandas.concat()
メソッドは、Pandas DataFrame または Series オブジェクトを連結する -
例:
pandas.concat()
メソッドを使って 2つの PandasSeries
を行軸に沿って連結する -
例:
pandas.concat()
メソッドを使って 2つの Pandas 系列オブジェクトを列軸に沿って連結する -
例:
pandas.concat()
メソッドを使って 2つの Pandas DataFrame オブジェクトを連結する -
例:
pandas.concat()
メソッドを用いた直列オブジェクトと DataFrame の連結
pandas.concat()
メソッドは、Pandas DataFrame または Series オブジェクトを連結します。
pandas.concat()
メソッドは、Pandas DataFrame または Series オブジェクトを連結する
pandas.concat(
objs,
axis=0,
join="outer",
ignore_index=False,
keys=None,
levels=None,
names=None,
verify_integrity=False,
sort=False,
copy=True,
)
パラメータ
objs |
連結する Pandas Series または DataFrame オブジェクトのシーケンスまたはマッピング。 |
join |
結合の方法(inner または outer ) |
axis |
row (axis=0 ) または column (axis=1 ) に沿ってコンケートします。 |
ignore_index |
論理値。True の場合、元の DataFrames のインデックスは無視されます。 |
keys |
シーケンスを使用して、結果のインデックスに識別子を追加します。 |
levels |
レベルを使用して MultiIndex を作成します。 |
names |
マルチインデックスのレベル名 |
verify_integrity |
論理値。True ならば、重複がないかどうかをチェックします。 |
sort |
論理値。join が outer のときに非連結軸が整列していなければ、非連結軸をソートします。 |
copy |
論理値。False ならば、データの不要なコピーを避ける。 |
戻り値
これは、すべての Series
オブジェクトが axis=0
に沿って連結されている場合に Series
オブジェクトを返します。連結するオブジェクトが DataFrame
であるか、Series
オブジェクトが axis=1
に沿って連結されている場合は DataFrame
オブジェクトを返します。
例: pandas.concat()
メソッドを使って 2つの Pandas Series
を行軸に沿って連結する
import pandas as pd
ser_1 = pd.Series([20, 45, 36, 45])
print("Series-1:")
print(ser_1, "\n")
ser_2 = pd.Series([48, 46, 34, 38])
print("Series-2:")
print(ser_2, "\n")
concatenated_ser = pd.concat([ser_1, ser_2])
print("Result after Concatenation of ser_1 and ser_2:")
print(concatenated_ser)
出力:
Series-1:
0 20
1 45
2 36
3 45
dtype: int64
Series-2:
0 48
1 46
2 34
3 38
dtype: int64
Result after Concatenation of ser_1 and ser_2:
0 20
1 45
2 36
3 45
0 48
1 46
2 34
3 38
dtype: int64
これは、Series
オブジェクト ser_1
と ser_2
を axis=0
あるいは行方向に連結します。一方の Series
オブジェクトの行はもう一方の行の上に積み重ねられます。連結されたオブジェクトはデフォルトでは親オブジェクトの index
の値を取ります。ignore_index=True
を指定することで、連結されたオブジェクトに新しいインデックス値を割り当てることができます。
import pandas as pd
ser_1 = pd.Series([20, 45, 36, 45])
print("Series-1:")
print(ser_1, "\n")
ser_2 = pd.Series([48, 46, 34, 38])
print("Series-2:")
print(ser_2, "\n")
concatenated_ser = pd.concat([ser_1, ser_2], ignore_index=True)
print("Result after Concatenation of ser_1 and ser_2:")
print(concatenated_ser)
出力:
Series-1:
0 20
1 45
2 36
3 45
dtype: int64
Series-2:
0 48
1 46
2 34
3 38
dtype: int64
Result after Concatenation of ser_1 and ser_2:
0 20
1 45
2 36
3 45
4 48
5 46
6 34
7 38
dtype: int64
これは Series
オブジェクトを連結し、連結された Series
オブジェクトに新しいインデックス値を代入します。
例:pandas.concat()
メソッドを使って 2つの Pandas 系列オブジェクトを列軸に沿って連結する
pandas.concat()
メソッドで axis=1
を指定することで、Series
オブジェクトを水平方向または列軸に沿って連結することができます。
import pandas as pd
ser_1 = pd.Series([20, 45, 36, 45])
print("Series-1:")
print(ser_1, "\n")
ser_2 = pd.Series([48, 46, 34, 38])
print("Series-2:")
print(ser_2, "\n")
concatenated_ser = pd.concat([ser_1, ser_2], axis=1)
print("Result after Horizontal Concatenation of ser_1 and ser_2:")
print(concatenated_ser)
出力:
Series-1:
0 20
1 45
2 36
3 45
dtype: int64
Series-2:
0 48
1 46
2 34
3 38
dtype: int64
Result after Horizontal Concatenation of ser_1 and ser_2:
0 1
0 20 48
1 45 46
2 36 34
3 45 38
これは Series
オブジェクトの ser_1
と ser_2
を水平方向に積み重ねます。
例:pandas.concat()
メソッドを使って 2つの Pandas DataFrame オブジェクトを連結する
import pandas as pd
df_1 = pd.DataFrame({"Col-1": [1, 2, 3, 4], "Col-2": [5, 6, 7, 8]})
print("DataFrame-1:")
print(df_1, "\n")
df_2 = pd.DataFrame({"Col-1": [10, 20, 30, 40], "Col-2": [50, 60, 70, 80]})
print("DataFrame-2:")
print(df_2, "\n")
concatenated_df = pd.concat([df_1, df_2], ignore_index=True)
print("Result after Horizontal Concatenation of df_1 and df_2:")
print(concatenated_df)
出力:
DataFrame-1:
Col-1 Col-2
0 1 5
1 2 6
2 3 7
3 4 8
DataFrame-2:
Col-1 Col-2
0 10 50
1 20 60
2 30 70
3 40 80
Result after Horizontal Concatenation of df_1 and df_2:
Col-1 Col-2
0 1 5
1 2 6
2 3 7
3 4 8
4 10 50
5 20 60
6 30 70
7 40 80
これは DataFrame
オブジェクト df_1
と df_2
を連結します。ignore_index=True
を指定することで、結合された DataFrame に新しいインデックスを割り当てます。
例:pandas.concat()
メソッドを用いた直列オブジェクトと DataFrame の連結
import pandas as pd
df = pd.DataFrame({"Col-1": [1, 2, 3, 4], "Col-2": [5, 6, 7, 8]})
print("DataFrame Object:")
print(df, "\n")
ser = pd.Series([48, 46, 34, 38])
print("Series Object:")
print(ser, "\n")
ser_df = pd.concat([df, ser], axis=1)
print("Concatenation of ser and df:")
print(ser_df)
出力:
DataFrame Object:
Col-1 Col-2
0 1 5
1 2 6
2 3 7
3 4 8
Series Object:
0 48
1 46
2 34
3 38
dtype: int64
Concatenation of ser and df:
Col-1 Col-2 0
0 1 5 48
1 2 6 46
2 3 7 34
3 4 8 38
これは DataFrame オブジェクト df
と Series
オブジェクト ser
を連結します。pandas.concat()
メソッドで axis=1
を設定しているので、連結はカラム単位で行われます。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn