2016-07-06 5 views
2

특정 열을 결합하려고하지만 모든 열에 대해 공통 조작으로 결합하려고하지 않습니다. 나는 pbheadid와 wpadr이 다른 행이 결합 된 것과 같은 행을 원합니다. 여기서 pickqty는 합쳐 져야하고 다른 열은 마지막 항목이나 가장 높은 pickdm에서 붙여 넣어 져야하지만 마지막 항목이 정렬되도록 정렬됩니다.팬더 열 결합하기 다른 열에 대해 다른 동작이 필요한 경우

색인을 사전 검색하여 사전에 저장할 수 있습니다. 그리고이 색인에 따라 각 행/열을 변경하십시오. 그러나 이것은 곧장 앞으로 나아가는 것이 아닙니다. 나는 팬더와 함께 뭔가 빠른 것이 가능해야한다고 생각합니다. 도움을 주시면 감사하겠습니다.

pbheadid pbcarid  artid wpadr pickqty pickdtm 

76079450 61838504 370944 523-370p 1 00:00:47 
76079450 61838110 323775 523-372p 1 00:01:05 
76079450 61838225 323775 523-372p 2 00:01:13 
76079450 61838504 323775 523-372p 3 00:01:30 
76079450 61838497 355475 523-373p 1 00:01:45 
76079450 61838504 354194 523-377p 1 00:01:55 
76079450 61838110 267204 523-376p 5 00:02:26 
76079450 61838225 267204 523-376p 1 00:02:33 

을 그리고이 결과가 있어야한다 : 이것은 데이터의 조각 (즉 pbheadid이 비슷하지만 더 큰 데이터 세트에서 변경 않습니다) 사전에

pbheadid pbcarid  artid wpadr pickqty pickdtm 
76079450 61838504 370944 523-370p 1 00:00:47 
76079450 61838504 323775 523-372p 6 00:01:30 
76079450 61838497 355475 523-373p 1 00:01:45 
76079450 61838504 354194 523-377p 1 00:01:55 
76079450 61838225 267204 523-376p 6 00:02:33 

많은 감사합니다!

답변

1

IIUC 당신은이 작업을 수행 할 수 있습니다

In [21]: (df.groupby(['pbheadid','wpadr']) 
    ....: .agg({'pickqty':'sum', 'artid':'last', 'pbcarid':'last', 'pickdtm':'last'}) 
    ....: .reset_index() 
    ....:) 
Out[21]: 
    pbheadid  wpadr artid pickqty pbcarid pickdtm 
0 76079450 523-370p 370944  1 61838504 00:00:47 
1 76079450 523-372p 323775  6 61838504 00:01:30 
2 76079450 523-373p 355475  1 61838497 00:01:45 
3 76079450 523-376p 267204  6 61838225 00:02:33 
4 76079450 523-377p 354194  1 61838504 00:01:55 
관련 문제