我正在努力为以下问题找到解决方案,这是一个非常简单的代码,我想这就是它无法正常工作的原因。Python 不断向我抛出这些错误消息,或者给我一个我不打算接收的输出。
我是 Python 新手,所以我还在学习。在网上查找可能的解决方案,但我没有找到适合我的问题的任何内容。
我在尝试着
方法一:
def function103(x):
if (x > 0):
A1.append(x)
else:
A2.append(x)
return x
# Applying the Code to the dataframe:
df.apply(lambda x: function103(x), axis=1)
数据框大小不一,至少 1000*3000,所以我正在寻找一种通用的方法
方法二:
def function103(x):
if (x > 0).any():
A1.append(x)
else:
A2.append(x)
return x
--> 给了我一个奇怪的 A1/A2 列表:
[R1 6.951920e-310
R2 6.951920e-310
R3 6.951920e-310
R4 6.951920e-310
R5 6.951920e-310
Name: 2010-09-30T00:00:00.000000000, dtype: float64, Return1 6.951920e-310
……..]
我什至不认为这被认为是一个列表 - 即使它关闭和打开这些括号 []
我总是收到此错误消息:
The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all() (#approach1)
对于#approach2,我收到的列表根本没有帮助。我只想要所述列表中满足 If 条件的单个元素。
另一种方法:
x = df[df>0].to_numpy().flatten()
y = df[df<=0].to_numpy().flatten()
A1.extend(x[~np.isnan(x)])
A2.extend(y[~np.isnan(y)])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句