【发布时间】:2018-12-29 07:08:40
【问题描述】:
我有以下数据:
data = {
"index": [1, 2, 3, 4, 5],
"name": ["A", "A", "B", "B", "B"],
"type": ['s1', 's2', 's1', 's2', 's3'],
'value': [20, 10, 18, 32, 25]
}
df = pd.DataFrame(data)
我需要检查同名下的值是否遵循约束(例如只有三种类型,并且并非都存在于同名下):s1
index name type value result
0 1 A s1 20 False
1 2 A s2 10
2 3 B s1 18 True
3 4 B s2 32 False
4 5 B s3 25
我如何在 Python 中做到这一点?感谢您的帮助。
【问题讨论】:
-
你已经尝试了什么?请添加一些代码
-
为什么有些行有破折号而其他行有
Falses?计算每个result的公式/算法是什么? -
@DYZ 例如,在 A 下只有 s1。如果你愿意,它会返回破折号或 NaN。
-
您的问题不清楚。 例如还不够好。
True、False和破折号的条件究竟是什么 - 分别针对每个结果?一旦有了公式,就很容易编写代码。 -
@meW 这只是一个有根据的猜测。我宁愿知道 OP 的想法。