相关疑难解决方法(0)

ValueError:具有多个元素的数组的真值是不明确的.使用a.any()或a.all()

我刚刚在代码中发现了一个逻辑错误,导致了各种各样的问题.我无意中做了一个按位AND而不是逻辑AND.

我更改了代码:

r = mlab.csv2rec(datafile, delimiter=',', names=COL_HEADERS)
mask = ((r["dt"] >= startdate) & (r["dt"] <= enddate))
selected = r[mask]
Run Code Online (Sandbox Code Playgroud)

至:

r = mlab.csv2rec(datafile, delimiter=',', names=COL_HEADERS)
mask = ((r["dt"] >= startdate) and (r["dt"] <= enddate))
selected = r[mask]
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,我收到了相当神秘的错误消息:

ValueError:具有多个元素的数组的真值是不明确的.使用a.any()或a.all()

为什么在使用按位操作时没有发出类似的错误 - 我该如何解决这个问题?

python numpy

190
推荐指数
4
解决办法
51万
查看次数

Python/Pandas:从列表中的字符串匹配中删除数据帧中的行

我有一个.csv文件的联系信息,我作为熊猫数据框导入.

>>> import pandas as pd
>>> 
>>> df = pd.read_csv('data.csv')
>>> df.head()

  fName   lName                    email   title
0  John   Smith         jsmith@gmail.com     CEO
1   Joe   Schmo      jschmo@business.com  Bagger
2  Some  Person  some.person@hotmail.com   Clerk
Run Code Online (Sandbox Code Playgroud)

导入数据后,我想删除行,其中一个字段包含列表中的几个子字符串之一.例如:

to_drop = ['Clerk', 'Bagger']

for i in range(len(df)):
    for k in range(len(to_drop)):
        if to_drop[k] in df.title[i]:
            # some code to drop the rows from the data frame

df.to_csv("results.csv")
Run Code Online (Sandbox Code Playgroud)

在熊猫中这样做的首选方式是什么?这应该是一个后处理步骤,还是首先在写入数据帧之前对其进行过滤?我的想法是,在数据框架对象中操作一次会更容易.

python pandas

11
推荐指数
1
解决办法
2万
查看次数

标签 统计

python ×2

numpy ×1

pandas ×1