2016-04-21 8 views
-1

Я хочу объединить повторяющиеся строки в определенном столбце и переупорядочить данные. Например, у меня есть следующий dataframe:Dataframe PANDAS

FROM CONT ID1 ID2 ID3 ID4 ID5 ID6 ID7 
63309 89  101.3 NA  NA  NA  NA  NA  NA 
63309 89  NA  102.3 NA  NA  NA  NA  NA 
63309 89  NA  NA  NA  104 NA  NA  NA 
63309 90  NA  NA  103 105.0 NA  NA  NA 
63309 89  NA  NA  NA  NA  NA  107.1 NA 
63310 92  NA  105.1 105.3 789.1 104 NA  NA 
63310 92  109 NA  NA  NA  NA  NA  NA 
63311 94  104 109 890 NA  NA  NA  107 
63309 89  NA  NA  NA  NA  109 NA  111 

Я хочу, чтобы мой результат в следующем формате:

FROM CONT ID1 ID2 ID3 ID4 ID5 ID6 ID7 
63309 89  101.3 NA  NA  NA  NA  NA  NA 
      89  NA  102.3 NA  NA  NA  NA  NA 
      89  NA  NA  NA  104 NA  NA  NA 
      90  NA  NA  103 105.0 NA  NA  NA 
      89  NA  NA  NA  NA  NA  107.1 NA 
      89  NA  NA  NA  NA  109 NA  111 

63310 92  NA  105.1 105.3 789.1 104 NA  NA 
      92  109 NA  NA  NA  NA  NA  NA 

63311 94  104 109 890 NA  NA  NA  107 

Я знаю, что я могу использовать df.sort(), чтобы расположить его в порядке возрастания. То, что я ищу, является форматирование столбца «FROM» и добавление пустого пространства, когда происходит переход от одной уникальной строки «FROM» к следующей уникальной строке «FROM».

+0

Пожалуйста, укажите название вопроса, которое содержит больше информации, чем в данный момент. – FooBar

ответ

2
>>> df.set_index(['FROM', 'CONT']).sort_index() 

       ID1 ID2 ID3 ID4 ID5 ID6 ID7 
FROM CONT            
63309 89 101.3 NaN NaN NaN NaN NaN NaN 
     89  NaN 102.3 NaN NaN NaN NaN NaN 
     89  NaN NaN NaN 104.0 NaN NaN NaN 
     89  NaN NaN NaN NaN NaN 107.1 NaN 
     89  NaN NaN NaN NaN 109 NaN 111 
     90  NaN NaN 103.0 105.0 NaN NaN NaN 
63310 92  NaN 105.1 105.3 789.1 104 NaN NaN 
     92 109.0 NaN NaN NaN NaN NaN NaN 
63311 94 104.0 109.0 890.0 NaN NaN NaN 107 

Вы не хотите, чтобы строки с разделителями в вашей информационной кадре. Это проблема форматирования.

Смежные вопросы