【发布时间】:2021-11-13 05:52:19
【问题描述】:
我有一个如下所示的数据框。
Name M_Name Tag
John 1
Dave a 1
Mary 1
Sam 1
Chris a 1
John 2
Nola f 2
Chuck 2
Rob 2
Chris a 2
Angie 3
Joe 3
: : :
Tony n
我需要创建一个新列 Tag_2,它基于 Tag 列和 M_Name 列。首先,我需要对 Tag 列进行分组,然后如果 M_Name 列有超过 1 个不同的字母,则整个 Tag 组将在 Tag_2 列下有一个新值“Invalid”。如果同一标签组的 M-Name 中只有 1 个字母,那么它将是“有效的”。 这是输出的样子。
Name M_Name Tag Tag_2
John 1 Valid
Dave a 1 Valid
Mary 1 Valid
Sam 1 Valid
Chris a 1 Valid
John 2 Invalid
Nola f 2 Invalid
Chuck 2 Invalid
Rob 2 Invalid
Chris a 2 Invalid
Angie 3 Valid
Joe 3 Valid
: : :
Tony n Valid
标签 2 组为“无效”,因为 M_Name 行中标签 2 组有超过 1 个不同的字母 (f & a)。
我正在考虑使用 groupby 来解决此任务,但我不知道如何添加这样的条件。 df.groupby('Tag')['M_Name']
我想知道我是否在使用 groupby 的正确道路上,还是我应该考虑任何更好的方法?
谢谢!
【问题讨论】:
标签: python pandas pandas-groupby