【发布时间】:2023-01-08 03:51:14
【问题描述】:
当我想添加新列时,if 语句出现问题。
import pandas as pd
scan = pd.DataFrame([[1,2,3],['a','b','c']], columns=['st','nd','rd'])
scan['th'] = 0 if scan['st'] == 0 else 1
ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
我怎样才能解决这个问题?
【问题讨论】:
-
你怎么想要解决这个问题?比如,你想做每个
th的值取决于st的相应值,或者您想全部th的值依赖于st的集合,比如.all()? (换句话说,分配一个向量或标量?) -
用您自己的话来说,代码中写着
scan['st'] == 0的地方,您认为这是什么意思?对于scan的给定值,你认为结果会是什么?类似地:您认为scan['th'] = 0或scan['th'] = 1意味着什么?你希望它会自动遍历行,检查每一行中st列的值,并在th列中设置相应的值? Pandas 和 Numpy 不是那神奇;它们仍然受 Python 语言语法的约束。