我正在嘗試使用熊貓在平坦的數據源上執行數據分析。具體來說,我試圖完成的是相當於SQL中的Union All查詢。聯合使用python熊貓的所有類型查詢
我使用read_csv()方法輸入數據,輸出具有唯一的整數索引和大約30列。
這些列中有幾列包含標識信息,而其他列包含數據。
總共,前6列包含唯一標識條目的標識信息。在這6列後面有一系列引用該值的列(A,B ...等)。這些列中的一些以集合的形式鏈接在一起,例如(A,B,C)屬於一起,就像(D,E,F)一樣。 (D,E,F)也與(A,B,C)如下((A,D),(B,E),(C,F))相關。 什麼,我試圖做的是採取具有如下我的數據集:
(id1,id2,id3,id4,id5,id6,A,B,C,D,E,F)
,並返回以下
((id1,id2,id3,id4,id5,id6,A,B,C),
(id1,id2,id3,id4,id5,id6,D,E,F))
這裏,A和d鏈接它們包含在同一列中。
(注意,這是一個簡化的,也有在總數據集中約12萬個獨特的組合)
我一直在嘗試使用合併,CONCAT和連接功能,都無濟於事。我覺得我錯過了一些至關重要的東西,比如在SQL數據庫中,我可以簡單地執行聯合所有查詢(這確實很慢)來解決這個問題。
我在這個階段沒有工作示例代碼。
基於一些熊貓文檔編寫此問題的另一種方法。
left = key lval
right = key rval
merge(left, right, on=key) = key, lval, rval
相反,我想:
left = kev, lval
right = key, lval
union(left, right) = key, lval
key, rval
我不知道,如果一個新的索引鍵的值將需要爲此創建。
你可以使用keys參數作爲concat,這將導致一個MultiIndex並且允許你唯一地選擇數據:concat(件,鍵= ['left','middle','right']。設置(id1,...,id6)作爲索引,這將減少選擇數據的冗長。 –