遍历分组的熊猫数据框并执行一些操作

时间:2019-02-12 15:54:44

标签: pandas-groupby

我正在尝试对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,我也不希望我的代码出错,因为这些行的“包含”列中只有“是”。

1 个答案:

答案 0 :(得分:0)

这有效:

//no point in doing any check on the actual variable
//we are always returning true
ModelState["IsWtv"].Value = true;