相关疑难解决方法(0)

从pandas中的数据帧中删除无限值?

什么是从pandas DataFrame中删除nan和inf/-inf值而不重置的最快/最简单的方法mode.use_inf_as_null?我希望能够使用subsethow参数dropna,除了inf被认为缺失的值,例如:

df.dropna(subset=["col1", "col2"], how="all", with_inf=True)
Run Code Online (Sandbox Code Playgroud)

这可能吗?有没有办法告诉dropnainf在其缺失值的定义中包含哪些内容?

python numpy scipy pandas

189
推荐指数
7
解决办法
19万
查看次数

在操作列时如何使用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
....
Run Code Online (Sandbox Code Playgroud)

有些操作我在列值之间进行划分,例如

df['one']/df['two'] 
Run Code Online (Sandbox Code Playgroud)

但是,有时我会将其除以零,或者两者兼而有之

df['one'] = 0
df['two'] = 0
Run Code Online (Sandbox Code Playgroud)

当然,这会输出错误:

ZeroDivisionError: division by zero
Run Code Online (Sandbox Code Playgroud)

我宁愿0/0实际上意味着"这里没有任何东西",因为这通常是数据帧中的零意味着什么.

(a)我如何将其编码为"除以零"为0?

(b)如果遇到零除,我如何将其编码为"通过"?

python dataframe python-3.x pandas

6
推荐指数
3
解决办法
3万
查看次数

在熊猫计算中处理零除

我有以下数据:

a = pd.Series([1, 2, 3])
b = pd.Series([0, 0, 0])
Run Code Online (Sandbox Code Playgroud)

如果被零除,在某些情况下我想

  1. 将结果设置为系列之一
  2. 将结果设置为特定值

但是以下给出了“意外”结果:

a.div(b, fill_value = 0)
0    inf
1    inf
2    inf

a.div(b).fillna(0)
0    inf
1    inf
2    inf

a.div(b).combine_first(a)
0    inf
1    inf
2    inf
Run Code Online (Sandbox Code Playgroud)

我想到达:

情况1:将数据设置为特定值

0    0
1    0
2    0
Run Code Online (Sandbox Code Playgroud)

情况2:将值设置为特定的序列

0    1
1    2
2    3
Run Code Online (Sandbox Code Playgroud)

python divide-by-zero pandas

3
推荐指数
1
解决办法
3676
查看次数

Pandas 数据框条件格式仍然会导致“除以零”错误,即使它......不应该?

我正在尝试添加一个新列,该列是另外两个列之间除法的结果,但通过仅将除法应用于分母大于零的行来消除除以零行。

df['division'] = 0

df.loc[(df['B'] > 0), 'division'] = (df['A'] / df['B'])
Run Code Online (Sandbox Code Playgroud)

当您设置 时,它工作得很好df = df.head(X),其中 X 消除了“B”中不包含零的行,所以我知道这是条件格式的失败,但我不明白为什么。

这种条件格式不起作用是否有一个不明显的原因?这种格式确实可以正常工作:

df.loc[df['B'] > 0]
Run Code Online (Sandbox Code Playgroud)

并返回df您所期望的。

python dataframe pandas

1
推荐指数
1
解决办法
908
查看次数

标签 统计

pandas ×4

python ×4

dataframe ×2

divide-by-zero ×1

numpy ×1

python-3.x ×1

scipy ×1