首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Pandas查找列之间值反转的重复项

Pandas查找列之间值反转的重复项
EN

Stack Overflow用户
提问于 2019-01-22 13:59:41
回答 2查看 405关注 0票数 3

在A列的值与B列的值颠倒的情况下,查找重复项的最快方法是什么?

例如,如果我有一个DataFrame,其中包含:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
     Column A           Column B
0           C                  P
1           D                  C
2           L                  G
3           A                  D
4           B                  P
5           B                  G
6           P                  B
7           J                  T
8           P                  C
9           J                  T

结果将是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
     Column A           Column B
0           C                  P
8           P                  C
4           B                  P
6           P                  B

我试过了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df1 = df
df2 = df
for i in df2.index:
     res = df1[(df1['Column A'] == df2['Column A'][i]) & (df1['Column B'] == df2['Column B'][i])]

但这是非常慢的,它迭代相同的值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-22 14:12:54

对重命名的列DataFrame使用merge

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
d = {'Column A':'Column B','Column B':'Column A'}
df = df.merge(df.rename(columns=d))
print (df)
  Column A Column B
0        C        P
1        B        P
2        P        B
3        P        C
票数 5
EN

Stack Overflow用户

发布于 2019-01-22 14:06:17

您可以尝试使用reindex进行倒置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
column_Names=["B","A"]
df=df.reindex(columns=column_Names)

或者你可以这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
col_list = list(df)   # get a list of the columns
col_list[0], col_list[1] = col_list[1], col_list[0]
df.columns = col_list   # assign back
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54309938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文