簡體   English   中英

兩個如何組合兩列不同的數據幀,使它們具有唯一的值?

[英]How two combine two columns of different dataframes such that they have unique values?

我有兩個不同的數據框,我想獲得兩列的排序值。

設置

import numpy as np
import pandas as pd

df1 = pd.DataFrame({
    'id': range(7),
    'c': list('EDBBCCC')
    })

df2 = pd.DataFrame({
    'id': range(8),
    'c': list('EBBCCCAA')
    })

期望輸出

# notice that ABCDE appear in alphabetical order
c_first c_second
NAN A
B   B
C   C
D   NAN
E   E

我試過的

pd.concat([df1.c.sort_values().drop_duplicates().rename('c_first'),
           df2.c.sort_values().drop_duplicates().rename('c_second')
           ],axis=1)

如何獲得所需格式的輸出?

這是實現它的一種可能方法:

t1 = df1.c.drop_duplicates()
t2 = df2.c.drop_duplicates()

tmp1 = pd.DataFrame({'id':t1, 'c_first':t1})
tmp2 = pd.DataFrame({'id':t2, 'c_second':t2})

result = pd.merge(tmp1,tmp2, how='outer').sort_values('id').drop('id', axis=1)
result
   c_first c_second
4     NaN        A
0       B        B
1       C        C
2       D      NaN
3       E        E

https://pandas.pydata.org/pandas-docs/version/0.25.0/reference/api/pandas.concat.html

concat 函數中有一個參數。 嘗試添加sort=True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM