检查DF中的列组合以返回唯一的行

2024-05-20 02:04:15 发布

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

for a, b in itertools.combinations(number_of_notes_cols, 2):
    weekly_meetings_difference = all_meetings_data[(all_meetings_data[a] != all_meetings_data[b]) == True]

上面的代码用于工作:它将返回列值所在的每周一次会议的列对的所有组合的所有行(如果对任何列都是这样)。现在,返回weekly\u meetings\u difference给了我一些列值更改的行,但不是全部。你知道吗


用一些代码编辑:

以前(当一切似乎都很顺利时):

Number of Notes 03112016    Number of Notes 03192016    Number of Notes 03272016    Number of Notes 04042016
Meeting Name                
X      12.0 NaN NaN NaN
Y       5.0 5.0 NaN NaN
Z       2.0 NaN NaN NaN
W       NaN 6.0 713.0 740.0

之后(现在我已经更新了我想要的信息的原始数据帧):

Number of Notes 03112016    Number of Notes 03192016    Number of Notes 03272016    Number of Notes 04042016    Number of Notes 04122016    Emails 04122016
Meeting Name                        
A   37.0 37.0 38.0 38.0 37.0
X   12.0 NaN NaN NaN NaN NaN
Y   5.0  5.0 NaN NaN NaN NaN
Z   2.0  NaN NaN NaN NaN NaN

现在我已经完成了这个编辑,我注意到在向dataframe添加额外的列之后添加了行A,并且删除了行W(它们每次都应该显示)


Tags: of代码name编辑numberfordatanan
1条回答
网友
1楼 · 发布于 2024-05-20 02:04:15

首先,让我确定我了解这个问题。是否在数据帧中查找具有多个唯一值的行?也就是说,该值在行中至少更改一次。你知道吗

import pandas as pd
df = pd.DataFrame({'a': [1, 1, 1], 'b': [1, 2, 3], 'c': [1, 1, 3]})

    a  b  c
0|  1  1  1
1|  1  2  1
2|  1  3  3

在上面的数据框中,您需要第1行和第2行。如果是这样,我会这样做:

df.apply(pd.Series.nunique, axis=1)

返回数据帧每行中唯一值的数目:

0    1
1    2
2    2
dtype: int64

使用该结果,我们可以选择我们关心的行:

df[df.apply(pd.Series.nunique, axis=1) > 1]

返回预期值:

    a  b  c
1|  1  2  1
2|  1  3  3

这就是你想要的,还是别的什么?如果你澄清的话,很乐意编辑。你知道吗

相关问题 更多 >