2017-12-29 21 views
-1

私は列から値を取得し、それらの項目の日付列と番号列が一致している場合にのみそれらを連結したいpandasデータフレームを持っています。ここでは、出力は私がこの操作は上が起こるしたいほぼ172355行をしました。このPandas-Pythonでの連結

No. Date  Code Output 
121 1-Jul-15 AT AT 
122 2-Jul-17 PN PN/WX 
122 2-Jul-17 WX PN/WX 
122 3-Jul-17 FX FX 

ようにする必要があり、データテーブル

No. Date  Code 
121 1-Jul-15 AT 
122 2-Jul-17 PN 
122 2-Jul-17 WX 
122 3-Jul-17 FX 

のサンプルです。

これは、私は親切に私がパンダでPythonのコードで、この出力を得る手助け

for i in 1 to len(df) 
    if date & no is same 
     concatenate code to new column of only same rows 
    else 
     copy code to new column as it is 
i = i+1 
end for 

をしようとした基本的な擬似コードです。私はあなたが元DataFrameで新しい列のtransformが必要と考えてい

答えて

0

df['new'] = df.groupby(['No.','Date'])['Code'].transform('/'.join) 
print (df) 
    No.  Date Code new 
0 121 1-Jul-15 AT  AT 
1 122 2-Jul-17 PN PN/WX 
2 122 2-Jul-17 WX PN/WX 
3 122 3-Jul-17 FX  FX 

ため使用apply場合は、出力が集約される:

df1 = df.groupby(['No.','Date'])['Code'].apply('/'.join).reset_index(name='new') 
print (df1) 
    No.  Date new 
0 121 1-Jul-15  AT 
1 122 2-Jul-17 PN/WX 
2 122 3-Jul-17  FX 
+0

ありがとうございました。これは私のために働いた。私がこのコードを変更するには、 "code"カラムに値があり、 "nan"でない場合にのみこの操作を行う必要があります。 –