1
다음은 간단한 문제입니다. 여행의 시작 및 끝 위치가있는 DataFrame이 있습니다. 각 스테이션에 대한 DataFrame을 끝내기를 원합니다. 도착 횟수와 출발 횟수입니다.(mapReduce와 비슷한) dataframe.apply를 사용하여 팬다에서 각 행을 여러 행으로 펼치십시오.
은 내가 한 행 출력 여러 행, 에 걸릴 후 감소 단계에서 모든 행을 통해 집계 할 수있는 지도 상에 맵리 듀스와 같은 워크 플로우에 익숙입니다.
내가 지금 가지고있는 코드는 다음과 같습니다. 작동하지 않습니다. 내 마지막 DataFrame으로 원하는 것은
import pandas as pd
import numpy as np
def expand_row(row):
return pd.Series(
{ 'station': [row['start_station'], row['end_station']],
'departures': [1, 0],
'arrivals': [0, 1],
},
)
trips = pd.DataFrame({
'start_station': ['a', 'c'],
'end_station': ['b', 'a'],
})
expanded = df.apply(expand_row, axis=1)
aggregated = expanded.groupby('station').aggregate(np.sum)
는
desired_df = pd.DataFrame({
'station': ['a', 'b', 'c'],
'departures': [1, 0, 1],
'arrivals': [1, 1, 0]
})
desired_df.index = desired_df.pop('station')
많은 감사합니다.
은 참으로 내 간단한 예를 들어 작동 않기 때문에 답변을 받아 들였다. 많은 감사합니다. 그러나 사용 사례에는 각 여행마다 타임 스탬프가 있었기 때문에이를 보존하기를 원했기 때문에 다음과 같은 결과를 보았습니다. * 출발과 도착으로 나누기. * 각각에는 또한 '시간'이 있습니다. * num_departures_per_station = departures.groupby ('시간') * num_arrivals_per_station = arrivals.groupby ('시간'). – user162988