Я столкнулся со следующей проблемой. У меня есть данные, которые хорошо отформатированы для человеческого глаза, но ужасны для компьютера. Например, он имеет формат таблицы, но без разделителей, а его заголовки переносятся словами, что означает, что если он длиннее определенной длины, остальное записывается в новой строке.
column 1 column 2 but column 3
with more text
1.5893001 1.513451 1.198420
1.5893001 1.513451 1.198420
1.5893001 1.513451 1.198420
1.5893001 1.513451 1.198420
etc...
Я хочу, чтобы столбцы в DataFrame имели текст, который имеет этот заголовок. Меня уже раздражает тот факт, что я должен предварительно обработать данные, вручную преобразовав их в dict.
После загрузки этих данных в DataFrame первая строка DataFrame - это метки столбцов, где column2, конечно, читается только частично. Во второй строке первое значение (столбца 1) имеет значение «», второе - «с большим количеством текста», а третье - NaN.
Я пробовал df.columns = df.iloc[0] + ' ' + df.iloc[1]
, что приводит к тому, что во втором столбце указана правильная метка, а в остальных - nan
.
Есть ли способ сделать условное выражение?
[править]
@jezrael для правильного форматирования
{0: {0: 'column 1', 1: '', 2: 1.5893001, 3: 1.5893001}
1: {0: 'column 2', 1: 'with more text', 2: 1.513451, 3: 1.513451}
2: {0: 'column 3', 1: None, 2: 1.198420, 3: 1.198420}}