我有一個看起來像這樣的文件:創建一個單一的數據幀進行兩列各包含列表
Location Code Trait ID Effective Date
WAU1 23984,24896,27576 06/05/2014 ,06/05/2014 ,06/12/2014
WAU2 126973,219332 06/05/2014 ,06/05/2014
WAU3 24375 06/05/2014
WAU4 23984 06/05/2014
WAU5 5199,23984 NULL
WAU6 12342,224123 06/05/2014
公告第2和第3列是如何一個值的「名單」。某些行包含每個列表中元素數量的完全匹配,其他行則缺失或根本不存在(空)。我需要創建一個單獨的數據幀是很像以下
Location Code Trait ID Effective Date
0 WAU1 23984 06/05/2014
1 WAU1 24896 06/05/2014
2 WAU1 27576 06/12/2014
3 WAU2 126973 06/05/2014
4 WAU2 219332 06/05/2014
5 WAU3 24375 06/05/2014
6 WAU4 23984 06/05/2014
7 WAU5 5199 NaN
8 WAU5 23984 NaN
9 WAU6 12342 06/05/2014
10 WAU6 224123 NaN
我已經能夠給每個「目錄」列闖入使用單獨dataframes如下:
df1 = df1['Trait ID'].str.split(',').apply(pd.Series,1).stack()
df1.index = df1.index.droplevel(-1)
df1.name = 'Trait ID'
del df1['Trait ID']
df1 = df1.join(trait_id)
其中給出我是這樣的:
Location Code Trait ID
0 WAU1 23984
0 WAU1 24896
0 WAU1 27576
1 WAU2 126973
1 WAU2 219332
2 WAU3 24375
3 WAU4 23984
4 WAU5 5199
4 WAU5 23984
5 WAU6 12342
5 WAU6 224123
,我還可以用上述相同的邏輯來產生以下的「有效日期」列表創建另一個數據框:
Location Code Effective Date
0 WAU1 06/05/2014
0 WAU1 06/05/2014
0 WAU1 06/12/2014
1 WAU2 06/05/2014
1 WAU2 06/05/2014
2 WAU3 06/05/2014
3 WAU4 06/05/2014
4 WAU5 NaN
5 WAU6 06/05/2014
我很努力地在熊貓中找到合適的「函數」(例如join,merge,concat)來將兩個數據框合併到我想要的輸出中。雖然我感覺它是它們的組合,並且在那裏有一個reset_index()。
數據源是什麼類型的「文件」?什麼是分隔符(逗號,管道,標籤)?它是否偶爾錯過這樣的逗號?我甚至可以問這個數據源(HTML,XML,RDMS等)的來源在哪裏? – Parfait
它是一個製表符分隔的文件,在文件的第2和第3列中是由逗號分隔的一串值。如果第二列的值的「原始」索引有匹配的元素(如果這是有意義的),我需要將第二列分割成行,然後將第三列「附加」到行中。否則,那個外推行,應該得到一個南/空,等等。 –