gpt4 book ai didi

python - 在 Pandas DataFrame(时间序列)的列中查找所有具有不同值的行

转载 作者:太空宇宙 更新时间:2023-11-04 00:08:57 25 4
gpt4 key购买 nike

假设我有一个用 Python 编写的 pandas DataFrame,它显示一段时间内不同部门的业务部门负责人姓名。它可能看起来像 this并且可以像这样重新创建:

import pandas as pd
import numpy as np

d = pd.DataFrame({'Boss_January': ['Nina', 'Lena', 'Max', np.NaN], 'Boss_February': ['Nina', 'Emilia','Max','Leonie'],'Boss_March':['Nina','Lena','Mark','Leonie']})

我想找到业务部门负责人发生变化的部门,即不同列的值不完全相同的行。

由于单元领导者的变化(和缺失值),结果应包括单元 1、单元 2 和单元 3,但不包括单元 0。

由于真正的 DataFrame 有更多的列,我不想通过遍历行并检查是否 Boss_January==Boss_February==Boss_March 来检查所有值。

最佳答案

您可以检查与第一个系列是否相等,测试所有值都是 True,然后取负值:

res = df[~df.eq(df.iloc[:, 0], axis=0).all(1)]

print(res)

Boss_February Boss_January Boss_March
1 Emilia Lena Lena
2 Max Max Mark
3 Leonie NaN Leonie

如果您只需要索引,则不需要对数据帧进行子集化:

bools = ~df.eq(df.iloc[:, 0], axis=0).all(1)
idx = bools[bools].index

print(idx)

Int64Index([1, 2, 3], dtype='int64')

关于python - 在 Pandas DataFrame(时间序列)的列中查找所有具有不同值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53158120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com