【发布时间】:2016-12-21 04:06:23
【问题描述】:
我希望对 .csv 文件执行高级计算。我的文件已经从 15 分钟的数据系列分组为每日平均值。我希望执行的计算涉及每行中存在的数据。
例如,我的 .csv 文件目前看起来像这样:
11/03/2014 (value) (value) (value) (value)
我想根据每行中的每日值执行一系列计算。
有没有一种方法可以专门为每一行执行我想要的计算,而无需转置我的列和行?
【问题讨论】:
我希望对 .csv 文件执行高级计算。我的文件已经从 15 分钟的数据系列分组为每日平均值。我希望执行的计算涉及每行中存在的数据。
例如,我的 .csv 文件目前看起来像这样:
11/03/2014 (value) (value) (value) (value)
我想根据每行中的每日值执行一系列计算。
有没有一种方法可以专门为每一行执行我想要的计算,而无需转置我的列和行?
【问题讨论】:
使用apply 和axis=1
考虑df
df = pd.DataFrame(
{
'A': np.random.choice(list('acflmnpsy'), 5),
'B': np.random.choice(list('ep'), 5),
'C': np.random.choice(np.arange(60, 241), 5)
}, pd.date_range('2016-03-31', periods=5)
)
df
以及我想应用于每一行的函数my_func
def my_func(row):
return (row.A + row.B) * int(row.C ** .5)
df.apply(my_func, axis=1)
2016-03-31 lplplplplplplplplplplplplplp
2016-04-01 aeaeaeaeaeaeaeaeaeaeaeaeaeae
2016-04-02 yeyeyeyeyeyeyeyeyeyeyeyeye
2016-04-03 ypypypypypypypypyp
2016-04-04 sesesesesesesesesesesese
Freq: D, dtype: object
【讨论】: