Python 两个数据帧的值之间的if语句
我想用两个数据帧的值做一个if语句(我想比较的值在第0列): 编辑: 首先,我想检查df1的值大于df2的值的次数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次编辑: 由于我没有时间尝试你所有的建议,
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'])