Python: как сделать второй компонент заголовка pd dataframe верхней строкой - PullRequest
0 голосов
/ 16 сентября 2018

У меня есть фрейм данных (df), который выглядит следующим образом:

                               0        1        2      3       4   5
s4-e1-p1-cohex.wav             0.0      0.0      0.0    Male    No  0.0
s4-e1-p2-thev-buckle.wav       50000    0.51     98039  Male    Yes 1
s4-e10-p1rly-newlyweds.wav     0        0        0      Female  No  0
s4-e10-p2-ks-away.wav          150000   0.2      750000 Male    Yes 1

В настоящее время заголовок этого фрейма данных состоит из первых двух строк:

df.columns.values.tolist()
#[(0, 0.0), (1, 0.0), (2, 0.0), (3, 'Male'), (4, 'No'), (5, 0.0)]

Мне интересно, как яможно переместить вторую строку в этом распечатанном информационном кадре в верхний ряд в информационном фрейме panda.Другими словами, строка, напечатанная ниже, не находится в фрейме данных pd, и я хочу включить ее в качестве верхней строки фрейма данных ( s4-e1-p1-cohex.wav нет ни в именах столбцов, ни в именах строк):

s4-e1-p1-cohex.wav             0.0      0.0      0.0    Male    No  0.0

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

 df.to_dict() 

 {(0, 0.0): {'s4-e1-p2-thev-buckle.wav': 50000.0,
   's4-e10-p1rly-newlyweds.wav ': 0.0,
    's4-e10-p2-ks-away.wav': 150000.0},
  (1, 0.0): {'s4-e1-p2-thev-buckle.wav': 0.51,
  's4-e10-p1rly-newlyweds.wav': 0.0,
   's4-e10-p2-ks-away.wav': 0.2},
  (2, 0.0): {'s4-e1-p2-thev-buckle.wav': 98039.0,
  's4-e10-p1rly-newlyweds.wav': 0,
   's4-e10-p2-ks-away.wav': 750000 },
  (3, 'Male'): {'s4-e1-p2-thev-buckle.wav': 'Male',
  's4-e10-p1rly-newlyweds.wav': 'Female',
   's4-e10-p2-ks-away.wav': 'Male'},
  (4, 'No'): {'s4-e1-p2-thev-buckle.wav': 'Yes',
  's4-e10-p1rly-newlyweds.wav': 'No',
   's4-e10-p2-ks-away.wav': 'Yes'},
  (5, 0.0): {'s4-e1-p2-thev-buckle.wav': 1,
  's4-e10-p1rly-newlyweds.wav': 0,
   's4-e10-p2-ks-away.wav': 1},

Ответы [ 2 ]

0 голосов
/ 16 сентября 2018

Я думаю, что-то не так с вашим выводом df в вопросе, поскольку я не смог сгенерировать ваш вывод. Я сделал это

df = pd.DataFrame(columns = [(0, 0.0), (1, 0.0), (2, 0.0), (3, 'Male'), (4, 'No'), (5, 0.0)])

df.loc['s4-e1-p2-thev-buckle.wav']= [50000.0, 0.51, 98039, "Male", "Yes", 1]

df.loc['s4-e10-p1rly-newlyweds.wav']= [0.0, 0.0, 0.0, "Female", "No", 0]

df.loc['s4-e10-p2-ks-away.wav'] = [150000.0, 0.2, 750000, "Male", "Yes",1]

Выход df.to_dict() равен

{(0, 0.0): {'s4-e1-p2-thev-buckle.wav': 50000.0, 's4-e10-p1rly-newlyweds.wav': 0.0, 's4-e10-p2-ks-away.wav': 150000.0},
 (1, 0.0): {'s4-e1-p2-thev-buckle.wav': 0.51, 's4-e10-p1rly-newlyweds.wav': 0.0, 's4-e10-p2-ks-away.wav': 0.2},
 (2, 0.0): {'s4-e1-p2-thev-buckle.wav': 98039, 's4-e10-p1rly-newlyweds.wav': 0.0, 's4-e10-p2-ks-away.wav': 750000},
 (3, 'Male'): {'s4-e1-p2-thev-buckle.wav': 'Male', 's4-e10-p1rly-newlyweds.wav': 'Female', 's4-e10-p2-ks-away.wav': 'Male'},
 (4, 'No'): {'s4-e1-p2-thev-buckle.wav': 'Yes', 's4-e10-p1rly-newlyweds.wav': 'No', 's4-e10-p2-ks-away.wav': 'Yes'},
 (5, 0.0): {'s4-e1-p2-thev-buckle.wav': 1, 's4-e10-p1rly-newlyweds.wav': 0, 's4-e10-p2-ks-away.wav': 1}}

Мой df вывод через ноутбуки Jupyter

enter image description here

Я действительно не понимаю вашего вопроса и желаемого результата. Нет способа удалить заголовок из вывода df. Если вы не распечатаете его в файл, а затем с помощью python удалите первую строку.

0 голосов
/ 16 сентября 2018

Попробуйте это

df.drop(df.index[0])

чтобы удалить первый ряд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...