나는 10 단위의 데이터를 가지고 있습니다. 매일 각 관찰 단위는 수 시간 동안 활동에 참여할 수 있습니다. 날짜 단위 - - 관찰 acitvity의 단위 - 어떤 활동 CumHours - 활동에 단위로 소요 시간의 누적 수팬더 데이터 그룹화 및 변환
날짜 : 나는 (말할 수)를 DataFrame 4 개 변수 때문에이있다.
매일 각 라인의 활동에 소비 된 시간을 나타내는 'Hours_calc'변수를 만들어야합니다. 내가 변환 방법을 필요로 믿고, 내가 (지정) 변환 함수에 전달 된 첫 번째 인수가 시리즈로 DF 열이라고 생각
DF = (mydata, columns = ['Date', 'Unit', 'Activity', 'CumHours'])
DF['Hours_calc'] = np.nan
DFGrouped = DF.groupby(['Unit', 'Activity'])
: 모든 정상 비트에게 조각을 가져온 후 나는 이렇게 agg() 메소드와 마찬가지로. 그게 맞습니까?
나는 다음과 같은 함수를 썼지 만 계산을 위해 DF 또는 DFGrouped를 참조해야하는지 알지 못합니다. 일반적으로 gorup 된 데이터 내의 행/열을 참조하는 방법은 무엇입니까? 또한 groupby 그룹과 같은 길이의 시리즈를 반환하려고 시도 할 권리가 있습니까?
def WorkingHours(x, Column):
LISTHOURS = []
for row in xrange(1, len(x)):
Tot = int(DFGrouped[Column][row]) - int(DFGrouped[Column][row - 1])
LISTHOURS.append(Tot)
return pd.Series(LISTHOURS)
TESTDF = DFGrouped.transform({Hours_calc : lambda x : WorkingHours(x, 'CumHours')})
또한 나는 DICT 변환을 전달하는 방법에 대한 문서에서 아무 것도보고 있지 않다, 그러나 나는 gorup에 하나 개의 변수/열 기능을 수행하는 다른 방법을 볼 수 없습니다.
어디서 잘못 되었나요? 오류 메시지가 오랫동안 혼란 스럽지만 "데이터 형식에 대해 유효하지 않은 변환 함수"로 끝납니다.
문제를 올바르게 이해하고 있는지는 잘 모르겠지만 Unit, Activity 대신 Date, Unit별로 그룹화하면 안됩니까? 이렇게하면 각 그룹에 대한 CumHours의 합계를 사용하여 모든 활동에 소요되는 총 시간을 구할 수 있습니다. – yemu
나는 그렇게 생각하지 않는다. 나는 하루 종일 어떤 활동 에든지 소비해야한다. 예를 들어, unit1이 두 개의 활동을하는 기간을 상상해보십시오. CumHours는 해당 날짜에 수행 한 활동에 대해 해당 단원이 소비 한 누적 시간을 측정합니다. 일일 시간 측정을 찾으려면 주어진 날짜에 누적 시간을 가져와 해당 활동이 수행 된 마지막 날로부터 누적 시간을 뺍니다. 따라서 단위/활동 및 날짜 별 정렬을 기준으로 그룹화하면 –
에 몇 가지 데이터가 채워진 데이터 파일의 예를 제공 할 수 있습니까? – yemu