2015-09-06 50 views
-1

我使用Python 3.4和Windows 7這是我的第一個數據幀的樣本:Sample Data熊貓結合數據框選項用於多個關鍵實例?

這裏是我的第二個數據幀:Sample Data 2

我的目標是使用「RTID」作爲我的鑰匙。但是,正如我從另一個數據結構分析的數據所證明的那樣,似乎有重複的鍵。此外,該要求要求每個RTID具有唯一的交易類型。

我有更多這些數據框(其中一些還共享公共列標題名稱)需要組合成一個內聚數據框。每個行值的完整性都通過其標題進行維護。重複的列名只能在最終產品中出現一次,每個相應的行依次附加相應的值(因此我最初認爲使用RTID列作爲關鍵字)以及丟失或不適用的值 - 一個空白空間。我最初的想法是來連接,但是,由於各種dtypes,我收到以下錯誤:

AssertionError: invalid dtype determination in get_concat_dtype 

這可以在這裏來源:Pandas/Internals.py

@EdChum@BrianPendleton均與內存管理的問題非常有幫助。

我想知道,如果加入和合並可能是這個特定的上下文有效的用例。我歡迎有關這方面的反饋。

+0

你一定想在兩個框架上做一個外連接? –

+0

不要在任何具有空值的列上合併,你會得到一個不精確的匹配,這會使你的合併df呈指數級增長,我要麼放棄它們,要麼分配一些虛擬值 – EdChum

+0

@BrianPendleton謝謝你將它引入前臺。根據我的理解,我認爲要求是所有表的聯合 - 不僅僅是共享「鍵」(在這種情況下是頭)的交集。我認爲,由於源數據幀產生了6個「子」數據幀,所以我在思考問題,在某些情況下,這些數據幀具有相同的頭。因此,這個理由。我也在編輯OP,以提供更清晰的數據和標題的組成。這將反映在我最初分享的Gist中。 – ahlusar1989

回答

0

我在參考第p。 188Python for Data Analysis爲我的答案。在回顧了提供的各種方法之後,我能夠實現最終產品。

援引上述兩個樣本數據源(以及丟棄的索引):

sample1 = pd.read_csv('sample_data.csv', dtype=str, error_bad_lines = False) 
sample2 = pd.read_csv('sample2.csv', dtype=str, error_bad_lines = False) 
sample_concat = pd.concat([sample1, sample2], keys = ['one', 'two'], ignore_index=True) 

這產生了正確的輸出中。事實證明,我是在解決問題。在這種情況下,行索引是沒有意義的。 ignore_index = False參數允許不保留沿着級聯軸的索引。這很有用,因爲我不是在尋找數據集的交集(這在理論上不應該在我正在爭吵的數據結構中顯而易見)。