我正在尝试制作一个脚本来自动执行一些“无聊的东西”。在我新的实习工作场所记录合规性。我的问题如下:
完成此操作后,我需要创建一个名为“ Compliance”的列,该列将显示布尔值,即无论数据是否符合要求,都显示true或false。我有点受阻,因此非常感谢您的帮助。
数据帧不是相同的。但是拥有一些相同的值:
我曾尝试使用som循环在df上进行初始化,但我缺乏一些基本的python逻辑(和经验)。
我也尝试过pd.merge和np.where,但我似乎找不到合适的解决方案
我在想类似的东西:
def checkConsistency(df1, df2, rows):
for index, row in df1.iterrows():
hostname = row['column name here']
for index2, row2, in df2.iterrows():
deviceName = row2['column name here']
df = pd.merge(df1, how='inner', left_on=['index'], right_on[rows])
df["Compliance"] = np.where( (df1.index[row]) == (df2.index[row2]), True, False)
return df
预期的输出应该是相关的行,并在新的“ Compliance”列中添加布尔值
答案 0 :(得分:0)
我认为这应该有效
import pandas as pd
def checkConsistency(df1, df2, indexItem):
listReturn = []
for i in range(len(df1)):
listReturn.append(df1.iloc[i,indexItem] == df2.iloc[i,indexItem])
df1["Compliance"] = listReturn
return df1
data = [1,2,3,4,5]
df = pd.DataFrame(data)
data = [1,1,2,4,5]
df2 = pd.DataFrame(data)
print(checkConsistency(df,df2,0))