私のデータフレームを想定
df1
name startdate label
A 14-05-07 1
A 14-05-21 2
A 14-06-01 3
A 14-06-15 4
B 18-10-05 1
B 18-10-19 2
B 18-10-31 3
C 19-03-04 1
C 19-03-17 2
C 19-03-31 3
D 16-04-01 1
D 16-04-21 2
..
df2
name date
A 14-04-05
A 14-05-08
A 15-01-05
B 18-07-05
B 18-10-02
C 19-01-03
C 19-03-30
D 16-04-01
..
2つのデータフレームがありますdf1とdf2は同じ共通キー 'name'を持っています
df1というラベルの付いた「startdate」をdf2の列に追加したいと思います。
欲しいものを出力する
name date label1 label2 label3 label4 ..
A 14-04-05 14-05-07 14-05-21 14-06-01 14-06-15
A 14-05-08 14-05-07 14-05-21 14-06-01 14-06-15
A 15-01-05 14-05-07 14-05-21 14-06-01 14-06-15
B 18-07-05 18-10-05 18-10-19 18-10-31 nan
B 18-10-02 18-10-05 18-10-19 18-10-31 nan
C 19-01-03 19-03-04 19-03-17 19-03-31 nan
C 19-03-30 19-03-04 19-03-17 19-03-31 nan
D 16-04-01 16-04-01 16-04-21 nan nan
方法はありますか?読んでくれてありがとう。
使用DataFrame.join
してDataFrame.pivot
とDataFrame.add_prefix
:
df = df2.join(df1.pivot('name','label','startdate').add_prefix('label'), on='name')
print (df)
name date label1 label2 label3 label4
0 A 14-04-05 14-05-07 14-05-21 14-06-01 14-06-15
1 A 14-05-08 14-05-07 14-05-21 14-06-01 14-06-15
2 A 15-01-05 14-05-07 14-05-21 14-06-01 14-06-15
3 B 18-07-05 18-10-05 18-10-19 18-10-31 NaN
4 B 18-10-02 18-10-05 18-10-19 18-10-31 NaN
5 C 19-01-03 19-03-04 19-03-17 19-03-31 NaN
6 C 19-03-30 19-03-04 19-03-17 19-03-31 NaN
7 D 16-04-01 16-04-01 16-04-21 NaN NaN
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加