【发布时间】:2020-05-13 19:26:28
【问题描述】:
我需要一些帮助来创建一个包含布尔函数的数据框列。我想根据有关其他 df 列数据的条件接收 True 或 False 值。
数据框:
date C A
0 2020-02-04 3284.75 3284.75
1 2020-02-05 3322.25 3303.50
2 2020-02-06 3333.25 3327.75
3 2020-02-07 3315.50 3324.38
4 2020-02-10 3340.25 3327.88
5 2020-02-11 3345.50 3342.88
6 2020-02-12 3367.00 3356.25
7 2020-02-13 3363.50 3365.25
8 2020-02-14 3368.25 3365.88
函数如下:
def func(C, A):
for i in range(3):
if C.shift(i) >= A.shift(i):
j + 1
if j == 3:
val = True
else:
val = False
return val
我在这里调用函数:
data['Func'] = data.apply(func(data['C'], data['A']), axis=1)
我在这个例子中遇到的错误是
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()
我试图让它工作的最常见错误是
TypeError: 'DatetimeIndex' object is not callable
和
AttributeError: ("'numpy.float64' object has no attribute 'shift'",
此时我不确定哪些元素有效或无效。任何帮助,将不胜感激。提前致谢。
【问题讨论】:
-
该函数试图确定何时存在“C”值大于“A”值的一系列连续三行。
标签: python pandas dataframe object boolean