pandas series同士の結合について

投稿者: Anonymous

こんにちは。
series同士の結合について質問があります。
表Aと表Bの結合を行おうと、pd.concat([A,B])とすると、
表Cのように、行追加の形で行われてしまいます。
列結合を行うにはどうしたらよいのでしょうか?
(日付、みかん、りんごのように並ぶイメージです。)

ネットで見ると、恐らく表A、表Bの価格にカラム名がついていないから、
同一カラムと見なされ、下に追加される形になると思うのですが、
series型でのカラム名のつけ方がいまいちわかりません。。。。

表A
日付 
4/1 100
4/2 200
4/3 300

表B
4/1 200
4/3 500

表C
4/1 100
4/2 200
4/3 300
4/1 200
4/3 500

解決

列結合を行うにはどうしたらよいのでしょうか?

pandas.concat() のパラメータに axis=1 を指定してください。
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.concat.html

ネットで見ると、恐らく表A、表Bの価格にカラム名がついていないから、同一カラムを見なされ、下に追加される形になると思うのですが、

同名のSeries同志でも列方向の結合はできます。

series型でのカラム名のつけ方がいまいちわかりません。。。。

Series.rename() をご使用ください。
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.rename.html

import pandas as pd

ser1 = pd.Series([100,200,300],index=['4/1','4/2','4/3'])
ser2 = pd.Series([200,500],index=['4/1','4/3'])

pd.concat((ser1.rename('みかん'), ser2.rename('りんご')),axis=1,sort=False)
#     みかん  りんご
#4/1  100     200.0
#4/2  200       NaN
#4/3  300     500.0
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *