gpt4 book ai didi

python - 仅将函数应用于 Pandas Dataframe 列的一部分

转载 作者:行者123 更新时间:2023-11-28 18:26:51 24 4
gpt4 key购买 nike

我有一个如下所示的数据框:

Date        Last
2016-11-03 101.58
2016-11-04 100.50
2016-11-07 103.55
2016-11-08 104.63
2016-11-09 106.15
2016-11-10 107.65
2016-11-11 106.74
2016-11-14 108.22
2016-11-15 107.92
2016-11-16 106.03

和一个简单的函数:

def new_def(x):
add=70.00
return x[0]+add

我想使用该函数向数据框添加另一列,但我只想将其应用于“2016-11-09”之前的日期。我试过这样做:

df['New']= df[:'2016-11-09'].apply(new_def, axis=1)

结果列在“2016-11-09”之前都是正确的,之后是 NaN。关于如何在 '2016-11-09' 之前返回 'x[0] + add' 和之后返回 'x[0]' 有什么建议吗?

提前致谢

最佳答案

您可以重写您的 new_def 函数以获取日期参数:

def new_def(val, date):
return val+70.0 if date < pd.datetime(2016, 11, 9) else val

然后像这样应用它:

df.apply(lambda r: newdef(r['Last'], r.name), 1)

关于python - 仅将函数应用于 Pandas Dataframe 列的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40784621/

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