【发布时间】:2020-03-31 14:01:37
【问题描述】:
假设我们有这个简单的 pandas.DataFrame:
import pandas as pd
df = pd.DataFrame(
columns=['quantity', 'value'],
data=[[1, 12.5], [3, 18.0]]
)
>>> print(df)
quantity value
0 1 12.5
1 3 18.0
我想创建一个新列,例如 modified_value,它将函数 N 次应用于 value 列,N 是 quantity 列。
假设函数为new_value = round(value/2, 1),预期结果为:
quantity value modified_value
0 1 12.5 6.2 # applied 1 time
1 3 9.0 1.1 # applied 3 times, 9.0 -> 4.5 -> 2.2 -> 1.1
这样做的优雅/矢量化方式是什么?
【问题讨论】: