相关疑难解决方法(0)

使用pandas.DataFrame中的复杂条件进行选择

例如,我有简单的DF:

import pandas as pd
from random import randint

df = pd.DataFrame({'A': [randint(1, 9) for x in xrange(10)],
                   'B': [randint(1, 9)*10 for x in xrange(10)],
                   'C': [randint(1, 9)*100 for x in xrange(10)]})
Run Code Online (Sandbox Code Playgroud)

我可以使用Pandas的方法和习语从"A"中选择"B"的相应值大于50,"C" - 不等于900的值吗?

python pandas

204
推荐指数
4
解决办法
45万
查看次数

pandas:索引数据框时的多个条件 - 意外行为

我通过两列中的值过滤数据框中的行.

由于某种原因,OR运算符的行为与我期望AND运算符的行为相反,反之亦然.

我的测试代码:

import pandas as pd

df = pd.DataFrame({'a': range(5), 'b': range(5) })

# let's insert some -1 values
df['a'][1] = -1
df['b'][1] = -1
df['a'][3] = -1
df['b'][4] = -1

df1 = df[(df.a != -1) & (df.b != -1)]
df2 = df[(df.a != -1) | (df.b != -1)]

print pd.concat([df, df1, df2], axis=1,
                keys = [ 'original df', 'using AND (&)', 'using OR (|)',])
Run Code Online (Sandbox Code Playgroud)

结果如下:

      original df      using AND (&)      using OR (|)    
             a  b              a   b             a …
Run Code Online (Sandbox Code Playgroud)

python boolean-logic pandas

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

标签 统计

pandas ×2

python ×2

boolean-logic ×1