相关疑难解决方法(0)

系列的真值是模棱两可的.使用a.empty,a.bool(),a.item(),a.any()或a.all()

问题是使用or条件过滤我的结果数据帧.我希望我的结果df提取var高于0.25且低于-0.25的所有列值.下面的这个逻辑给了我一个模糊的真值,但是当我在两个单独的操作中分割这个过滤时它可以工作.这里发生了什么?不知道在哪里使用建议a.empty(), a.bool(), a.item(),a.any() or a.all().

 result = result[(result['var']>0.25) or (result['var']<-0.25)]
Run Code Online (Sandbox Code Playgroud)

python filtering boolean dataframe pandas

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

如何制作好的可重复的熊猫示例

花了相当多的时间观察SO上的标签,我得到的印象是pandas问题不太可能包含可重现的数据.这是值得的R社会一直要鼓励不错,并感谢像导游这样,新人能得到放在一起,这些例子一些帮助.能够阅读这些指南并返回可重现数据的人通常会更好地获得他们问题的答案.

我们如何为pandas问题创建良好的可重复示例?简单的数据帧可以放在一起,例如:

import pandas as pd
df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice'], 
                   'income': [40000, 50000, 42000]})
Run Code Online (Sandbox Code Playgroud)

但是许多示例数据集需要更复杂的结构,例如:

  • datetime 指数或数据
  • 多个分类变量(是否等价于R的expand.grid()函数,它会产生某些给定变量的所有可能组合?)
  • MultiIndex或Panel数据

对于dput()难以使用几行代码进行模拟的数据集,是否有与R相当的R ,它允许您生成可复制粘贴的代码以重新生成数据结构?

python pandas

222
推荐指数
5
解决办法
2万
查看次数

使用if-else创建新列时的Pandas错误:Series的真值是不明确的

我正在使用Pandas并尝试使用Python if-else语句(也称为三元条件运算符)创建一个新列,以避免被零除.

例如下面,我想通过划分A/B来创建一个新的列C. 我想使用if-else语句来避免除以0.

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0, 5, size=(100, 2)), columns=list('AB'))
df.head()
#    A  B
# 0  1  3
# 1  1  2
# 2  0  0
# 3  2  1
# 4  4  2

df['C'] = (df.A / df.B) if df.B > 0.0 else 0.0
Run Code Online (Sandbox Code Playgroud)

但是,我从最后一行收到错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Run Code Online (Sandbox Code Playgroud)

我在StackOverflow上搜索并发现了有关此错误的其他帖子,但它们都没有涉及这种类型的if-else语句.一些帖子包括:

系列的真值是模棱两可的.使用a.empty,a.bool(),a.item(),a.any()或a.all()

系列的真值在数据帧中是模糊的

错误:系列的真值是不明确的 - Python pandas

任何帮助,将不胜感激.

python pandas

2
推荐指数
2
解决办法
5056
查看次数

标签 统计

pandas ×3

python ×3

boolean ×1

dataframe ×1

filtering ×1