[英]Elementwise logical operation on character with pandas data frame
我正在使用一个数据框,其中每个条目都是来自 AE 的一个字符,代表不同的强度级别
例如:
数据框
df=
1 2 3
0 C C A
1 0 D B
2 E 0 A
我想将 A 到 E 不同强度级别的数据阈值转换为二进制矩阵。 因此,我想进行逐元素比较。
如果是数字,则很简单: df > 0
但是,当我尝试使用字符df > 'A'
,会抛出错误"TypeError: Could not compare ['A'] with block values"
我当然可以做一个'for'循环,但是有没有一行优雅的解决方案来使用熊猫中的数据框对字符执行元素逻辑操作?
我会考虑以下更通用的方法:
In [238]: df.astype(str).applymap(ord).sub(ord('@')).replace(-16,0)
Out[238]:
1 2 3
0 3 3 1
1 0 4 2
2 5 0 1
在哪里:
0 - 0
1 - A
2 - B
3 - C
...
只需将 Pandas 版本升级到 0.21.1 即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.