python - 为什么我会收到此错误:ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()
问题描述
我有一个真假布尔表达式的df,我想比较它们以将数据帧节点列打印到我的.xlsx(如果为真),如果为假则打印到另一个xlsx列。
if data['equal'] == True:
ws['I1'] = data['node2']
elif data['equal'] == False:
ws['J1'] == data['#node1']
ws.save()
错误:
if data['equal'] == True:
Lil' 数据示例:
ws['J1'] `
是我尝试使用 openpyxl 打印到我的 xlsx 的列标题的示例。谢谢
解决方案
似乎您想逐行选择数据。正如评论中提到的,您不能直接在值数组上使用 if 语句,但您可以使用该数组作为掩码来索引您的数据帧/numpy 数组。
虽然我可能误解了您问题的确切性质,但您可以通过使用布尔掩码来实现选择,如下所示(使用简单的示例数据框):
>> df = pd.DataFrame({'mask': [True, False, True], 'data': [1, 2, 3]})
mask data
0 True 1
1 False 2
2 True 3
>> df[df['mask'] == True] # select rows which are True
mask data
0 True 1
2 True 3
>> df[df['mask'] == False]
mask data
1 False 2
推荐阅读
- kubernetes - kubernetes DNS - 让服务通过 DNS 联系自己
- c++ - 写入文件时需要帮助换行
- java - 即使转到不同的 Activity,也可以从 Main Activity 继续 Fragment 中的媒体播放器(播放歌曲)
- keyboard - 绑定到键时,xdotool 无法在 i3wm 中工作
- java - Firebase 远程配置 - 安卓
- html - 滑块顶部不同设备尺寸的响应式徽标
- oracle - 如何创建在 oracle apex 报告中右键单击时出现的上下文菜单?
- python - 在 Pycharm Python virtualenv 中使用 subprocess.call() -- 如何为子进程停用 venv
- python - Django 表单:来自外键的引用字段
- docker - 卡夫卡经纪人认为没有经纪人(甚至没有经纪人)