Pandas dataframe - 检查多行是否具有相同的值

发布于 2025-01-09 04:13:09 字数 840 浏览 2 评论 0原文

我有一个如下所示的 DataFrame:

ReferenceValue
String11
String20
String3-1
String21
String11
String30

每个引用可以在数据框中出现一次、两次或三次;并且可以具有相同或不同的关联值。 我想创建另一个数据框,它告诉我,对于每个参考,它们是否都具有相同的值。因此,在上面的示例中,我想得到如下内容:

参考
String1Yes
String2No
String3No

(我以 Yes 和 No 为例,但它可以是 1/0 或其他)

我该怎么做?

我最初的想法是使用 .groupby 但后来我没有找到任何类型的聚合可以帮助我......

I have a DataFrame which looks like this :

ReferenceValue
String11
String20
String3-1
String21
String11
String30

Each reference can appear in the dataframe either once, two times, or three times ; and can have either the same or different value associated.
I would like to create another dataframe which tells me, for each Reference, do they all have the same value or not. So with the example above, I would like to get something like this :

ReferenceValue
String1Yes
String2No
String3No

(I put Yes and No as an example but it could be 1/0 or whatever else)

How can I do this ?

My initial thought was to use a .groupby but then I didn't find any type of aggregation which would help me here...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

悲念泪 2025-01-16 04:13:10

您可以使用groupby + nunique来获取每个引用的唯一值的计数。然后使用 np.where 根据唯一值的数量是否为 1 来分配“是”/“否”值:

out = df.groupby('Reference', as_index=False)['Value'].nunique()
out['Value'] = np.where(out['Value'].eq(1), 'Yes', 'No')

输出:

  Reference Value
0   String1   Yes
1   String2    No
2   String3    No

You could use groupby + nunique to get a count of unique Values for each Reference. Then use np.where to assign Yes/No values depending on if the number of unique values is 1 or not:

out = df.groupby('Reference', as_index=False)['Value'].nunique()
out['Value'] = np.where(out['Value'].eq(1), 'Yes', 'No')

Output:

  Reference Value
0   String1   Yes
1   String2    No
2   String3    No
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文