2017-12-29 35 views
-1

필자는 열에서 값을 가져 와서 해당 항목의 날짜 열과 번호 열이 일치하는 경우에만 팬더 데이터 프레임을 연결하려고합니다. 여기 출력은 내가이 작업에 발생 할 거의 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 

의 샘플입니다.

이 친절 팬더의 파이썬 코드와이 출력을 받고 도와 내가

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 

을 시도 기본적인 의사 코드입니다.

답변

0

난 당신이 원래 DataFrame 새로운 열의 transform 필요 믿는다

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

감사합니다. 이것은 나를 위해 일했다. "코드"열에 값이 있고 "nan"이 아닌 경우에만이 작업을 수행해야한다면 어떻게이 코드를 변경할 수 있습니까? –