- 主题:求解
定义了一个函数,运行出错
#定义函数:大于零的偶数,返回1,否则,返回0
def func(S):
if (pd.Series(S)!=0) & (pd.Series(S)%2 ==0):
return 1
else: 0
#赋值给D列:
df.loc[:,'D'] = func(df['C'])
#错误提示:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(),
a.item(), a.any() or a.all().
#C列数据类型
df['C'].dtypes
dtype('float64')
--
FROM 211.161.241.*
没明白错误在哪里
【 在 Tnnnnn 的大作中提到: 】
: 定义了一个函数,运行出错
: #定义函数:大于零的偶数,返回1,否则,返回0
: def func(S):
: ...................
--
FROM 211.161.241.*
参数目前是float64,返回1或0,
1和0也需要设定数据类型吗?
【 在 annals 的大作中提到: 】
: 你的func希望参数是个什么类型,返回什么类型?
:
--
FROM 211.161.241.*
不了解,晕晕乎乎的
【 在 annals 的大作中提到: 】
: 那么
: pd.Series(S)
: pd.Series(S) != 0
: ...................
--
FROM 211.161.241.*
嗯,
之前是带着问题碎片学的,到处碰壁。
这周末系统的看看。
【 在 mof 的大作中提到: 】
: 建议好好看看pandas的手册
: 要理解pandas的思路
--
FROM 211.161.241.*
是的,这就是我想要的效果,感谢感谢
【 在 mof 的大作中提到: 】
: 我猜你要的是
: df['D'] = df['C'].apply(lambda x: 1 if int(x) > 0 and int(x) %2 == 0 else 0)
--
FROM 211.161.241.*
好的,有时间得好好补补
【 在 annals 的大作中提到: 】
: 虽然pandas是个很强大的库,但是由于其过于丰富的操作和方法,并不是那么好上手,建议还是先把python的基础打牢一点
--
FROM 211.161.241.*