원하는 경우 시계열 또는 열의 일부 기능을 계산하고 싶습니다.pd.DataFrame.agg를 사용하여 특징 벡터 만들기
나는 그것에 대해 pandas.DataFrame.agg
을 사용할 수 있지만 결과 롤스/DataFrame의 행에 사용자 정의 이름을 부여 할 수없는 것으로 보입니다.
참고 :
아래의 코드는 내가 원하는 것을이 그냥 예입니다. 나는 내가
['sum', 'std', 'mean']
등을 agg에 전달할 수 있다는 것을 알고 있지만, 에 대해 임의로 집계 함수를 수행하고 싶습니다.<lambda> <lambda> s0 0.406411 0.330624 s1 0.446666 0.301839 s2 0.498958 0.159052 s3 0.613881 0.353684 s4 0.455623 0.287457
그러나, 나는이 기능에 대한 적절한 이름을 가지고 싶습니다
import pandas as pd
import numpy as np
n_series = 5
n_time_samples = 10
data = np.random.rand(n_time_samples, n_series)
columns = ['s{:d}'.format(i) for i in range(n_series)]
df = pd.DataFrame(data, columns=columns)
df.agg([lambda x: x.mean(),
lambda x: x.std()], axis=0).T
결과는 각 시계열에 대한 특징 벡터이다. 난 그냥 df.columns
를 설정하여 열 이름을 바꿀 수 있습니다 알고
# Throws KeyError
df.agg({'f1': lambda x: x.mean(),
'f2': lambda x: x.std()}, axis=0).T
하지만이 단지 agg
를 사용 해결할 수 있는지 궁금 해서요 : 그렇게하기 위해 사전을 통과 할 수 없습니다. 보조 노트로
axis=1
도 실패합니다 설정을 :
df.agg([lambda x: x.mean(),
lambda x: x.std()], axis=1).T
이
TypeError: ("'list' object is not callable", 'occurred at index 0')
하지만
# Note transpose
df.T.agg([lambda x: x.mean(),
lambda x: x.std()], axis=0).T
작동을 던질 것인가?
@Zero을 설정
lambda
funcs를 사용하지만 난 그 임의의 기능을 수행 할 수 있어야합니다. – displayname