2016-04-08 3 views
1

Есть 6 столбцов данных, 4-й столбец имеет те же значения, что и первый, но некоторые значения отсутствуют, я хотел бы знать, как сортировать 4-й столбец так, чтобы одни и те же значения попадали в одну и ту же строку, используя питон.сортировка столбца с отсутствующими значениями

Выборочные данные

255 12 0.1  255 12 0.1 
256 13 0.1  259 15 0.15 
259 15 0.15 272 18 0.12 
272 18 0.12    
290 19 0.09    

Желаемая выход

255 12 0.1  255 12 0.1 
256 13 0.1  
259 15 0.15 259 15 0.15 
272 18 0.12 272 18 0.12   
290 19 0.09    
+4

вы могли бы разместить данные выборки и ожидаемые результаты? – Zero

+0

Я предполагаю, что есть способ сделать это с модулем csv, но, возможно, есть более pythonic способ – Whitefret

+0

Я могу сделать это, используя excel с помощью этой темы http://stackoverflow.com/questions/23136316/comparing -two-columns-in-excel-inserting-blank-rows-moving-associated-data, но pythonic-путь был бы более дружелюбным, так как я должен работать с большими данными. –

ответ

0

Вы можете попробовать merge:

print df 
    a b  c  d  e  f 
0 255 12 0.10 255.0 12.0 0.10 
1 256 13 0.10 259.0 15.0 0.15 
2 259 15 0.15 272.0 18.0 0.12 
3 272 18 0.12 NaN NaN NaN 
4 290 19 0.09 NaN NaN NaN 

print pd.merge(df[['a','b','c']], 
       df[['d','e','f']], 
       left_on=['a','b'], 
       right_on=['d','e'], 
       how='left') 

    a b  c  d  e  f 
0 255 12 0.10 255.0 12.0 0.10 
1 256 13 0.10 NaN NaN NaN 
2 259 15 0.15 259.0 15.0 0.15 
3 272 18 0.12 272.0 18.0 0.12 
4 290 19 0.09 NaN NaN NaN 
+0

Попробуем и дадим знать, спасибо. –

+0

Нет другого простейшего способа сделать это? – Abbas

+0

Я думаю, что это очень просто, потому что использовать только одну функцию. Я не знаю лучшего подхода. – jezrael