如何合并pandas数据帧并过滤不同列中的重复内容?

时间:2018-01-20 17:47:31

标签: python pandas

我正在学习python 2.7中的pandas。我正在学习pandas中的merge()方法。

以下是我创建数据框的代码:

man xargs

,输出是:

import pandas as pd

eibi = {'A': ['aaa','bbb','ccc','eee','fff'],
        'B': ['bbb','aaa','ccc','fff','eee']
        }

df = pd.DataFrame(eibi)

print df

我想将数据框合并到数据框本身的行中。目标是如果B列中的单元格与A列中的单元格匹配,则将该单元格移动到C列和D列。

我希望下面的数据框能清楚说明我预期的数据框架。

     A    B  
0  aaa  bbb
1  bbb  aaa
2  ccc  ddd
3  eee  fff
4  fff  eee

我试图复制df数据帧然后使用merge()方法并使用左合并来合并它。这是我的代码:

     A    B    C    D
0  aaa  bbb  bbb  aaa
2  ccc  ddd  
3  eee  fff  fff  eee

,输出为:

fd = df

new_dataframe = pd.merge(left=df, right=fd, left_on='A', right_on='B', how='left')

print new_dataframe

我的问题是“如何删除索引1和4?”和“还有另一种方法来获得预期的结果吗?”

1 个答案:

答案 0 :(得分:1)

因为您的问题是如何删除索引1和4

output[~pd.DataFrame(np.sort(output.values)).duplicated()]
Out[816]: 
   A_x  B_x  A_y  B_y
0  aaa  bbb  bbb  aaa
2  ccc  ddd          
3  eee  fff  fff  eee