【发布时间】:2021-02-16 00:54:07
【问题描述】:
我正在尝试运行下面需要两点的函数..
point A=(2,3)
point B=(4,5
def Somefunc(pointA, point B):
x= pointA[0] + pointB[1]
return x
现在,当尝试基于此功能创建单独的列时,它会向我抛出 cannot convert the series to <class 'float'> 之类的错误,所以我尝试了这个
df['T']=df.apply(Somefunc((df['A'].apply(lambda x: float(x)),df['B'].apply(lambda x: float(x))),\
(df['C'].apply(lambda x: float(x)),df['D'].apply(lambda x: float(x)))),axis=0))
下面的示例数据框;
A B C D
1 2 3 5
2 4 7 8
4 7 9 0
任何帮助将不胜感激。
【问题讨论】:
-
尝试在您的函数
return float(x)中进行浮点转换,并在应用您的 lambda 函数时将其关闭 -
为什么有这么多应用函数嵌套在一起,这会让我做噩梦。你希望你的结果是什么样的?
-
抱歉,但我尝试了不同的方法,但似乎可以得到输出。结果将是基于函数结果的新列。问题是函数要求 A 点,但实际上它是两个单独的列点 A=(A,B) 的组合,同样点 B=(C,D)
-
@ShahrukhKhalidi 不用担心,我现在编辑了原始答案,现在我现在正在尝试执行此操作。