【发布时间】:2019-07-23 13:49:23
【问题描述】:
我有一个 df 有两列 df['A'] 和 df['B'](df['C']) 是时间戳)。 A 的数据是用户名,B 是数字。
我想提取用户名+数字值 A) 相同和 B) 不同的位置,即显示用户名具有 >1(不同)数字的位置。
这可能吗?
我使用set(df.A+df.B) 进行了测试以获取唯一值,但对此我无能为力。
编辑:
我需要更清楚地说明这一点......
我正在描绘一个循环,我从索引0 开始,在df['A'] 和df['B'] 中获取它的值,然后我遍历索引n+1...第n 行寻找索引@ 上的匹配项987654332@的df['B'],如果匹配存在则检查索引df['A']是否匹配df['A'],如果不匹配则打印两个索引的数据,然后移动到索引n+1并重复过程。这有意义吗?
所以这基本上只会打印来自数据框 df 的数据,其中用户名字符串(在 df['A'] 中)与不同的数字(df['B'] 值)相关联。
【问题讨论】:
-
df.loc[df['A'] == df['B']]和df.loc[df['A'] != df['B']]?但是,当您提到获得“唯一值”时,这是否正是您想要的还不清楚。如果没有,您能否发布示例数据和预期结果? -
为了更好地说明您想要什么,您应该包含示例数据和预期输出。
-
与
pandas.DataFrame.duplicated、pandas.DataFrame.groupby和/或nunique有很多关系,但我不知道您拥有什么或想要什么。考虑提供minimal reproducible example -
('foo', '11')和('foo1', '1')是有效的(username, number)对吗?如果是这样,添加它们会产生相同的值,'foo11',但大概这些对应该被认为是不同的。因此,添加通常不是确定唯一性的正确(最强大、无错误)的方法。 -
@Brendan - 我的更新有意义吗?
标签: python python-3.x pandas