如何检查pandas数据帧的一列中的所有值是否相等?

2024-10-06 08:33:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样的数据帧

  name data result 
0  x    100
1  x    100
2  x    100
3  x    100
4  x    100
5  y    100
6  y    90
7  y    90
8  y    100
9  y    85

我想检查name列中的每个组在data列中是否具有相同的值。在

因此,对于每个x组,如果相应的data值都相等,则在result列中写入full。如果一个组的值不是全部相等,则在result列中写入nearly。在

我尝试过对数据帧进行分组:

^{pr2}$

但在检查每个值是否相同并没有实际帮助,请在result列中写入。在

我尝试创建一个函数来检查唯一值

def check_identicals(row):
    if(df.sent.nunique() == 1):
        print('Full')

这里的想法是将该函数应用于每一行,并将输出写入result列。在

理想输出:

   name data result 
0  x    100   full
1  x    100   full
2  x    100   full
3  x    100   full
4  x    100   full
5  y    100   nearly
6  y    90    nearly
7  y    90    nearly
8  y    100   nearly
9  y    85    nearly

Tags: 数据函数namedfdataifdefcheck
1条回答
网友
1楼 · 发布于 2024-10-06 08:33:55

^{}^{}^{}一起使用,比较新的Series中与原始DataFrame大小相同的所有值:

df['result'] = np.where(df.groupby('name')['data'].transform('nunique') == 1,'full','nearly')
print (df)
  name  data  result
0    x   100    full
1    x   100    full
2    x   100    full
3    x   100    full
4    x   100    full
5    y   100  nearly
6    y    90  nearly
7    y    90  nearly
8    y   100  nearly
9    y    85  nearly

编辑:

为了测试每个组是否所有丢失的值都将^{}与另一个条件一起使用,并将错误值与transform^{}进行比较:

^{pr2}$

相关问题 更多 >