Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数据帧中的For循环和if语句_Python_Pandas_Dataframe_For Loop_If Statement - Fatal编程技术网

Python 数据帧中的For循环和if语句

Python 数据帧中的For循环和if语句,python,pandas,dataframe,for-loop,if-statement,Python,Pandas,Dataframe,For Loop,If Statement,我试图在满足某些条件时获取行值 这是密码 response='108' group="MAMA" optout='False' for row in merged_df: if row==response & row==group & row==optout: print(merged_df['phone']) 我的数据框看起来是这样的 phone group County PNC/ANC Facility Name

我试图在满足某些条件时获取行值

这是密码

response='108'
group="MAMA"
optout='False'

for row in merged_df:
        if row==response & row==group & row==optout:
            print(merged_df['phone'])
我的数据框看起来是这样的

phone       group   County  PNC/ANC Facility Name   Optedout    Facility Code
25470000000 MAMA    Orange  PNC     Main Centre       FALSE      112
25470000000 MAMA    Orange  PNC     Main Centre       FALSE      112
25470000010 MAMA    Orange  PNC     Centre            FALSE      108
25470000020 MAMA    Orange  PNC     Centre            FALSE      108
25470000000 MAMA    Orange  PNC     Main Centre       FALSE      112
这就是我得到的错误

    read_masterFacility()
  File "readsheet.py", line 48, in read_masterFacility
    if row==response & row==group & row==optout:
TypeError: unsupported operand type(s) for &: 'int' and 'str'
期望输出

25470000010 
25470000020

我如何才能做得更好???

您需要以下几点:

if ((row["Facility Code"]==response and row["group"]==group) and row["optedout"]=optout):
这是因为您正在检查每一列的行中的值。您需要指定要检查的列。“&”也是Python中的按位and


此外,我认为您需要打印出第[“phone”]行。

发生错误是因为
&
是按位比较。第二个问题是,如果
merged_-df
是一个数据帧,那么对于merged_-df中的行,
只会迭代它的列名。你应该这样做:

编辑的代码:

phones=merged_-df.loc[(merged_-df['Facility code']==response)&(merged_-df['group']==group)&(merged_-df['Optedout']==optout)]['phone']值
打印(电话)

我得到这个错误
TypeError:字符串索引必须是整数
行的类型是什么:数据帧合并了吗?您可以使用type(merged_df)检查merged_df是一个数据帧…所有列的数据类型都是object关于未获得输出-它应该是最后一行中的print(row['phone'])吗?我只是想在我的df中打印所有电话号码,如果所有条件都是真的,请尽量避免原生python for循环。。。当你使用Pandas或numpy的内置函数时,你会得到更快的代码。另外,请发布数据而不是图片,使用预期输出(也是数据)我没有得到任何错误,但我也没有得到任何输出
optout='FALSE'
,而不是
'FALSE
,因为在数据框中它是
FALSE
,我这样做了,但仍然,无输出和无错误所需输出
25470000010 25470000020
返回一个空列表
[]
您确定设备代码是整数而不是字符串吗?