각 열이 날짜, 지역 및 해당 날짜/지역에서 관찰 된 일련의 ID 인 가변 열 너비가있는 CSV 파일이 있습니다. .Python (Pandas?) : 가변 열 너비가있는 CSV 파일의 데이터 집계
데이터는 다음과 같다 :
12/01/2017,Region1,BMW_123,TESLA_332,TESLA_2002
11/07/2017,Region2,TESLA_332,BMW_123,TESLA_2002,TESLA_99812
11/19/2017,Region2,BMW_123,TESLA_31
10/23/2017,Region1,BMW_4,TESLA_3,TESLA_90
11/02/2017,Region2,TESLA_28,BMW_56,TESLA_22,TESLA_821
10/14/2017,Region2,BMW_1,BMW_8,BMW_2,TESLA_3,TESLA_4,TESLA_99,TESLA_81,TESLA_56
내가하려고 :
(1) ID의 모든 분할 그냥 브랜드를 유지, 그래서 "TESLA_12345"그냥 "TESLA"될 것 . 이 부분은 문제가되지 않습니다.
(2) 각 달 - 지역 튜플에 대한 각 브랜드 (예 : 테슬라 또는 BMW)의 실패 횟수를 파악할 수 있도록 월별로 집계합니다.
의 모양은 출력 (형식은 매우 중요하지 않습니다 - 그냥 읽을 수 있어야한다) :
month region BMW TESLA
10 Region1 1 2
12 Region1 1 2
10 Region2 3 5
11 Region2 3 7
CSV의 라인 -을 읽는 것이 작업을 수행하는 자연적인 방법처럼 보인다 (BMW : 2, TESLA : 1)와 같은 카운트를 유지하는 월 사전을 포함하는 2 개의 지역을 포함하는 지역 사전을 가지고 있습니다. 그러나 나는 고심하고 있습니다. 중첩 된 dicts를 업데이트하면 훨씬 간단한 솔루션이 있는지 궁금하다. (또는 Pandas가 쉽게 할 수있는 경우 등)
(참고 : 분명히 mont
datetime.strptime(mydate, "%m/%d/%Y").strftime("%m")
)
https://stackoverflow.com/questions/15242746/handling-variable-number-of-columns-with-pandas -python – maxymoo
어쩌면 스택으로 뭔가를 할 수 있습니다. 'df_stacked = df.set_index ([ 'date', 'region']). stack()' – maxymoo
답장을 보내 주셔서 감사합니다! 고르지 않은 기둥이있는 판다에서 몇 개의 게시물을 발견했습니다. https://stackoverflow.com/questions/15242746/handling-variable-number-of-column-with-pandas-python/15252012 및 https : // stackoverflow.com/questions/40880724/pandas-failing-with-variable-columns 그러나 파이썬은 판다 데이터 프레임을 사용하는 것이이 경우를 다루는 '좋은'방법인지 또는 줄 단위가 더 적합한지를 알만큼 강하지 않습니다 , 특히 왜냐하면 그것은 기존의 정렬 방식과는 다른 정렬 방식이기 때문입니다 (행 전체에 걸쳐 집계하기 전에 행 내부의 개수를 가져와야하기 때문에). – cataclysmic