gpt4 book ai didi

python - 将函数应用/组合 N 次到 Pandas 列,每行 N 不同

转载 作者:行者123 更新时间:2023-12-03 16:36:02 24 4
gpt4 key购买 nike

假设我们有这个简单的 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

这样做的优雅/矢量化方式是什么?

最佳答案

您可以编写自定义 repeat函数,然后使用应用:

def repeat(func, x, n):
ret = x
for i in range(int(n)):
ret = func(ret)

return ret

def my_func(val): return round(val/2, 1)

df['new_col'] = df.apply(lambda x: repeat(my_func, x['value'], x['quantity']),
axis=1)

# or without apply
# df['new_col'] = [repeat(my_func, v, n) for v,n in zip(df['value'], df['quantity'])]

关于python - 将函数应用/组合 N 次到 Pandas 列,每行 N 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60952433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com