【发布时间】:2016-01-13 18:51:52
【问题描述】:
给定以下数据框:
import pandas as pd
df = pd.DataFrame(
{'A':['A','A','B','B','C','C'],
'B':['Y','Y','N','N','Y','N'],
})
df
A B
0 A Y
1 A Y
2 B N
3 B N
4 C Y
5 C N
我需要一行代码: 1. 确定 A 的每个类别在 B 列中是否有超过 1 个唯一值(即 A 列中的类别“C”在 B 列中有 2 个唯一值,而 A 列中的类别“A”和“B”只有 1 个每个都有独特的价值)。 2. 仅当每个类别有超过 1 个唯一值时,将 B 列中的值更改为“Y”(即,对于列中的类别“C”的两行,B 列都应具有“Y” A.
这是想要的结果:
A B
0 A Y
1 A Y
2 B N
3 B N
4 C Y
5 C Y
提前致谢!
【问题讨论】:
-
或者,如果 B 列同时包含 A 列中给定类别的“Y”和“N”,则将该类别的 B 列中的所有值更改为“Y”。
-
听起来类似于“超过 1 个唯一值”?
标签: python python-3.x pandas