【问题标题】:There should be one and only one value in column B for every value in column A - Pandas对于 A 列中的每个值,B 列中应该只有一个值 - Pandas
【发布时间】:2021-11-14 12:17:39
【问题描述】:

我有一个如图所示的数据框:

我想要一个类似于Value 列的输出。
这意味着对于A 列中的每个值,B 列中只能有一个且只有一个值。
即使A 列中的值重复,B 列中的值也应该重复。
请帮忙

【问题讨论】:

  • 不是数据的屏幕截图,你能用创建实际数据框的代码替换它吗?
  • 似乎您需要按 A 列对数据进行分组并取 B 列。然后您可以应用一些方法,例如中位数。在这种情况下,方法 first 可以解决问题。但是,如果您提供一些数据会很好。
  • 谢谢大家..为帮助
  • 这不是一个与期望相关的问题。我建议删除该标签。

标签: python pandas dataframe join great-expectations


【解决方案1】:

使用transform 将每个“A”值遇到的第一个“B”值设置为每一行,然后测试第一个值是否等于“B”值。

df['V'] = df['B'] == df.groupby('A')['B'].transform('first')

输出:

>>> df
   A  B      V
0  1  a   True
1  1  a   True
2  2  a   True
3  3  b   True
4  1  a   True
5  2  b  False
6  3  c  False
7  1  d  False

详情:

>>> df.groupby('A')['B'].transform('first')
0    a
1    a
2    a
3    b
4    a
5    a
6    b
7    a
Name: B, dtype: object

【讨论】:

    猜你喜欢
    • 2020-03-10
    • 1970-01-01
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    相关资源
    最近更新 更多