数据框的列中的值返回true还是false

时间:2019-09-05 10:51:49

标签: python pandas dataframe

输入数据:

obj  number
1    433
2    342
3    111
4    345

输出数据:

true

尝试:

df[df['number'].isin([111,433])]
df.number.isin([111,433])
df.number.any() == 111 or 433

但是他们都没有给我我想要的结果

我正在尝试解析文件,并且无论何时该数字在1个数据帧中,我都想运行一些特殊算法来重新格式化它。例如,如果在数字列中包含111,我想添加一个带有layout-name的列,其中应显示值“ layout1”

2 个答案:

答案 0 :(得分:1)

您很接近,用Series.any测试标量的值,以测试至少一个True

print ((df.number == 111).any())
True

要使用OR测试多个值,请使用Series.isinany

df.number.isin([111, 222]).any()

如果需要测试连续值-111和下一行222

print (df)
   obj  number
0    1     433
1    2     342
2    3     111
3    4     222

print (((df['number'] == 111) & (df['number'].shift(-1) == 222)).any())
True

答案 1 :(得分:1)

您将其设置得过于复杂,可以在此处使用以下命令检查是否有任何值为 alias: { 'react': path.resolve('./node_modules/react') }

111

或更短:

(df['number'] == 111).any()

如果您要检查序列中是否出现了两个(或多个值),则为:

df['number'].eq(111).any()

如果要检查的项目数量相对较少,则可以解决问题。