我正在处理数百个熊猫数据框。一个典型的数据框如下:
import pandas as pd
import numpy as np
data = 'filename.csv'
df = pd.DataFrame(data)
df
one two three four five
a 0.469112 -0.282863 -1.509059 bar True
b 0.932424 1.224234 7.823421 bar False
c -1.135632 1.212112 -0.173215 bar False
d 0.232424 2.342112 0.982342 unbar True
e 0.119209 -1.044236 -0.861849 bar True
f -2.104569 -0.494929 1.071804 bar False
....
在某些操作中,我在列值之间进行划分,例如
df['one']/df['two']
但是,有时我会除以零,或者两者兼而有之
df['one'] = 0
df['two'] = 0
自然地,这会输出错误:
ZeroDivisionError: division by zero
我更希望 0/0 实际上意味着“这里什么都没有”,因为这通常是数据帧中这样的零的意思。
(a) 我如何将其编码为表示“除以零”为 0 ?
(b) 如果遇到被零除的情况,我如何将其编码为“通过”?
原文由 ShanZhengYang 发布,翻译遵循 CC BY-SA 4.0 许可协议
要考虑的两种方法:
通过显式编码“无数据”值并对其进行测试,准备您的数据,以免出现被零除的情况。
用
try
/except
对包装可能导致错误的每个分区,如 https://wiki.python.org/moin/HandlingExceptions 所述(除以零示例使用)我担心您的数据包含一个真正为零(而不是缺失值)的零的情况。