问题描述
数据
CategoricalVariable CV1 : X1,X2,X3...Xn
数值变量 NV1 : 1-1000
时间:0-100
C1 | 时间 | NV1 |
---|---|---|
X1 | 0 | 1 |
X1 | 1 | 100 |
X2 | 0 | 200 |
X2 | 1 | 500 |
操作 1:按分类变量拆分
DataFrame1
C1 | 时间 | NV1 |
---|---|---|
X1 | 0 | 1 |
X1 | 1 | 100 |
数据帧2
C1 | 时间 | NV1 |
---|---|---|
X2 | 0 | 200 |
X2 | 1 | 500 |
操作二:应用自定义函数
import numpy as np
def custom_func (anyarray):
last_element_in_array = anyarray [-1]
first_element_in_array = anyarray [0]
return np.sin (last_element_in_array) * np.ln (first_element_in_array)
custom_func (DataFrame1 ['NV1'].values) # np.sin (100) * np.ln (1)
操作 3:重新组合 DataFrame1 和 DataFrame2
解决方法
这是一个 groupby
操作:
data.groupby('C1')['NV1'].apply(custom_func)