【发布时间】:2021-09-02 13:25:08
【问题描述】:
我有一个 pandas 数据框 df,其中一个列名为 val,我对其应用了交叉索引计算:
import pandas as pd
sensor_data = {'Sensor': ['A', 'B', 'C', 'D', 'E'], 'val': [20, 2 , 2, 19, 18]}
df = pd.DataFrame(sensor_data)
# Cross index computation:
cross_index_computation_result = []
for i in range(1, len(df['val'])):
cross_index_computation_result.append(df['val'][i-1] * df['val'][i])
print(cross_index_computation_result)
>> [40, 4, 38, 342]
尤其是对于Map、Filter 和Reduce 等lambda 函数,它们比使用带有索引访问的简单for 循环要快得多,
有没有更有效的方法来对数据框列交互执行跨索引计算?
我知道这是错误的语法,但类似于:
cross_index_computation_result = list(map(lambda x: x[i-1] * x[i], df['val']))
【问题讨论】:
标签: python pandas dataframe lambda