【发布时间】:2019-06-05 22:00:27
【问题描述】:
我在下面有这个熊猫数据框:
Id Guild Test
0 5c5dc770f920209b94c3def3 72f92390/7f2e/4b41/b53b/393470619eca True
1 5c5dc7707d62f8b356457863 596f57d7/c8a9/4b14/aec1/18ef2b9fa940 None
2 5c5dc770974d1a6d38cffa3a 6a7ad94c/0511/4ef9/8b60/e05158cad03c False
3 5c5dc7709809c3452ae07d22 843d9c5f/1f53/4752/a905/0b1de73efab2 None
4 5c5dc7706c606a2118c4350b 9d63dcc5/1063/49b3/9a90/a854e7eb7398 None
当我尝试应用 numpy.where 时:
pdf['Id'] = np.where(bool(pdf['Test']), pdf['Id'], None)
还尝试使用 numpy.equal:
pdf['Id'] = np.where(np.equal(pdf['Test'], None), None, pdf['Id'])
向我抛出错误:
ValueError:Series 的真值不明确。使用a.empty, a.bool()、a.item()、a.any() 或 a.all()。
我的目标:将 None 应用于 Teste 不是有效布尔值的 Id 列。
提前致谢。
【问题讨论】:
-
bool是一个返回单个布尔值的 Python 函数。Test列是一个系列,有多个值。该歧义错误是 Pandas 中numpy为bool(np.array([True, False, True]))产生的错误的等价物 - 试图从几个数组中获取布尔值。
标签: python pandas dataframe nan