我正在尝试对Pandas中的分组数据执行操作。对于基于变量“ atable”和“ column”的每个组,我想遍历各行,以查看包含“是”的变量“ value”的值之和是否等于包含“是”的变量“ value”的值之和“否”,仅当“包含”具有该组的“是”和“否”值时。如果不满足条件,那么我想用行详细信息打印错误。我的数据如下:
df1 = pd.DataFrame({
'atable':['Users','Users','Users','Users','Locks'],
'column':['col_1','col_1','col_1','col_a','col'],
'Include':['No','Yes','Yes','Yes','Yes'],
'value':[3,2,1,1,1],
})
df1
Include atable column value
0 No Users col_1 3
1 Yes Users col_1 2
2 Yes Users col_1 1
3 Yes Users col_a 1
4 Yes Locks col 1
我尝试了以下代码,但对于包含列中没有“是”或“否”的行,也会出现错误,如下所示:
grouped = df1.groupby(["atable", "column"])
for index, rows in grouped:
if (([rows['Include'].isin(["Yes", "No"])])) and (rows[rows['Include'] == 'Yes']['value'].sum() != rows[rows['Include'] == 'No']["value"].sum()):
print("error", index)
Output:
error ('Locks', 'col')
error ('Users', 'col_a')
即使是索引3和4,我也不希望我的代码出错,因为这些行的“包含”列中只有“是”。
答案 0 :(得分:0)
这有效:
//no point in doing any check on the actual variable
//we are always returning true
ModelState["IsWtv"].Value = true;