Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.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 两个数据帧的值之间的if语句_Python_Pandas_Dataframe_For Loop_If Statement - Fatal编程技术网

Python 两个数据帧的值之间的if语句

Python 两个数据帧的值之间的if语句,python,pandas,dataframe,for-loop,if-statement,Python,Pandas,Dataframe,For Loop,If Statement,我想用两个数据帧的值做一个if语句(我想比较的值在第0列): 编辑: 首先,我想检查df1的值大于df2的值的次数 for row in df1: if df1[0] > df2[0]: Print('Ok') else: Print('not OK') 我得到的是: ValueError:序列的真值不明确。使用a.empty, a、 bool()、a.item()、a.any()或a.all() 第2次编辑: 由于我没有时间尝试你所有的建议,

我想用两个数据帧的值做一个if语句(我想比较的值在第0列):

编辑:

首先,我想检查df1的值大于df2的值的次数

for row in df1:
    if df1[0] > df2[0]:
       Print('Ok')
    else:
       Print('not OK')
我得到的是:

ValueError:序列的真值不明确。使用a.empty, a、 bool()、a.item()、a.any()或a.all()

第2次编辑:

由于我没有时间尝试你所有的建议,而且我需要一个快速的解决方案,以下是我的想法:

excessLoadB1l=[]

indexYB1=loadC1C2B1.index.tolist()

tempLB1=energyBalanceB1['sumSupply_B1'].tolist()

for item in tempLB1:

    if item < 0:

        item=item

    else:

        item=0

    excessLoadB1l.append(item)

excessLoadB1=pd.DataFrame({'excessLoadB1':excessLoadB1l}).set_index([indexYB1])
稍微快一点

for i, j in enumerate(df.itertuples()):
    if j[0] > df1[0].iloc[i]:
        print("OK")
    else:
        print("Not OK")

您可以组合这两个数据帧,然后添加一个带有np的列。其中:

df['result'] = np.where(df1['column1'] > df2['column2'], 'ok', 'not ok')
+

此外,从b2002借款

df_ = df1[0].gt(df2[0])
(df_ == 1).sum()

不确定你到底在找什么

如果要比较来自不同数据帧的单个列:

df1[0].gt(df2[0])
df1.gt(df2)
如果要将一个数据帧的所有列与另一个数据帧的单个列进行比较:

df1.gt(df2[0], axis=0)
如果要比较两个数据帧中的所有列:

df1[0].gt(df2[0])
df1.gt(df2)
将此项添加到上述任一项中,以获得“Ok”和“not Ok”,而不是True和False:

.replace([1, 0], ['Ok', 'not OK'])

请指出
do something
do something
代表的内容,例如,您是否根据您的条件创建了一个新列?根据if语句,我希望合并另外两个数据帧,例如。G如果df1[0]>df2[0]的值合并df3和df4…这是非常重要的。我建议您编写一个完整的小示例dataframes。相关说明:dataframes类似dict,它们的键是列标签。因此,如果您在df:print(x)中为x运行
,您所看到的就是
df
的列名,没有数据。解决方案是在df.iterrows()中为i循环
。最好接受答案,甚至对给定的反应作出反应。人们都在努力帮助你。在这种情况下,你不想
j[1]
检查这些值吗
..
如果j[1]>df1[0]。iloc[i]:
..
.replace([1, 0], ['Ok', 'not OK'])