2016-01-19 31 views
0

我嘗試轉換SQL語句得到不同的列值和工會dataframes

SELECT distinct table1.[Name],table1.[Phno] 
    FROM table1 
    union 
    select distinct table2.[Name],table2.[Phno] from table2 
    UNION 
    select distinct table3.[Name],table3.[Phno] from table3; 

現在我有4個dataframes:表1,表2,表3。

table1 
    Name  Phno 
0 Andrew 6175083617 
1 Andrew 6175083617 
2 Frank 7825942358 
3 Jerry 3549856785 
4  Liu 9659875695 
table2 
    Name  Phno 
0 Sandy 7859864125 
1 Nikhil 9526412563 
2 Sandy 7859864125 
3 Tina 7459681245 
4 Surat 9637458725 
table3 
    Name  Phno 
0 Patel 9128257489 
1 Mary 3679871478 
2 Sandra 9871359654 
3 Mary 3679871478 
4 Hali 9835167465 

現在我需要讓這些dataframes和工會他們的獨特價值和得到的輸出是:

sample output 
    Name  Phno 
0 Andrew 6175083617 
1 Frank 7825942358 
2 Jerry 3549856785 
3  Liu 9659875695 
4 Sandy 7859864125 
5 Nikhil 9526412563 
6  Tina 7459681245 
7 Surat 9637458725 
8 Patel 9128257489 
9  Mary 3679871478 
10 Sandra 9871359654 
11 Hali 9835167465 

我試圖讓唯一值的一個數據幀表1,如下圖所示:

table1_unique = pd.unique(table1.values.ravel()) #which gives me 
table1_unique 
array(['Andrew', 6175083617L, 'Frank', 7825942358L, 'Jerry', 3549856785L, 
    'Liu', 9659875695L], dtype=object) 

但我把它們作爲一個數組。我甚至嘗試將它們轉換爲數據幀使用:

table1_unique1 = pd.DataFrame(table1_unique) 
table1_unique1 
      0 
0  Andrew 
1 6175083617 
2  Frank 
3 7825942358 
4  Jerry 
5 3549856785 
6   Liu 
7 9659875695 

如何獲得唯一值的數據幀,這樣我可以Concat的他們按照我的樣本輸出。希望這是明確的。謝謝!!

+0

你的問題不清楚,後樣本數據和期望的結果,也表明你的努力,是不是代碼編寫/轉換服務 – EdChum

回答

0
a = table1df[['Name','Phno']].drop_duplicates() 
b = table2df[['Name','Phno']].drop_duplicates() 
c = table3df[['Name','Phno']].drop_duplicates() 
result = pd.concat([a,b,c]) 
+0

感謝查理!它做了這項工作。但我如何重置數據幀結果的索引? – User1090

+0

你可以做'result.reset_index()' –

+0

謝謝安東:) – User1090