我正在处理数百个Pandas 数据帧.典型的数据帧如下所示:

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) 如果遇到被零除的情况,我将如何将其编码为"通过"?

推荐答案

需要考虑的两种方法:

通过显式地编写"无数据"值并进行测试,准备好数据,以避免出现被零除的情况.

try/except对包裹可能导致错误的每个除法,如https://wiki.python.org/moin/HandlingExceptions所述(其中有一个用零除的示例)

(x,y) = (5,0)
try:
  z = x/y
except ZeroDivisionError:
  print "divide by zero"

我担心的情况是,数据中包含一个实际上是零(而不是缺失值)的零.

Python-3.x相关问答推荐

从PYTHON中获取单行和多行的Rguar表达式

基于另一个数据帧计算总和

以某种方式分割字符串

链接列未延伸到数据框的末尾

不同的焦点顺序和堆叠顺序 tkinter

Python Regex 查找给定字符串是否遵循交替元音、辅音或辅音、元音的连续模式

为什么 Sympy 不能解决我的非线性系统? Python 解释器一直在执行,直到我终止进程

这种类型提示有什么作用?

使用 selenium 加速网页抓取

如何在带有 GUI 的 python 游戏中设置回答时间限制?

使用一周的特定第一天将每日日期转换为每周

通过 requests 库调用 API 获取访问令牌

`pyspark mllib` 与 `pyspark ml` 包

django rest框架中的save()、create()和update()有什么区别?

获取嵌套字典的所有键

Python3四舍五入到最接近的偶数

作为函数对象属性的 __kwdefaults__ 有什么用?

类方法和实例方法同名

如何使用 Python 订阅 Websocket API 通道?

Python:&= 运算符