восстановить столбец при выполнении операции - PullRequest
1 голос
/ 04 ноября 2019
temp = 
           1             2             3             4             5
7.499 45.109  7.499 45.109  7.499 45.109  7.499 45.109  7.499 45.109
7.499 45.109  7.499 45.109  7.499 45.109  7.499 45.109  7.499 45.109
7.499 45.109  7.499 45.109  7.499 45.109  7.499 45.109  7.499 45.109
7.499 45.109  7.499 45.109  7.499 45.109  7.499 45.109  7.499 45.109

temp.info() дал мне Columns: 338 entries, 0 to 337

Затем я сделал следующее, чтобы разделить мои данные:

df = temp.stack().str.split(' ', expand=True).unstack()

df.info() дал мнеColumns: 674 entries, (0, 0) to (1, 337)


Вопрос:

0 to 337, а затем 1, 337

Где мой последний столбец? Как получить их все?

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Просто проверьте ваш temp фрейм данных для значения NaN. Вполне вероятно, что ваши temp имеют NaN значения. По умолчанию stack, сброс NaN. Чтобы сохранить NaN, нужно указать dropna=False. Попробуйте, чтобы увидеть, если df.info() показывает 676 записей

df = temp.stack(dropna=False).str.split(expand=True).unstack()
df.info()
0 голосов
/ 04 ноября 2019

DataFrame df имеет MultiIndex в качестве столбцов. Так, например, вы должны иметь доступ к столбцу, который взят из first части оригинального столбца 3 с помощью этого:

df.loc[:, (0, 3)]
  • Внешний уровень столбцов (level=0) принимает значения 0 или 1, которые указывают первую или вторую часть результата str.split(). (Кстати, str.split() по умолчанию разделяется на пробелы, поэтому вам не нужно указывать ' ')

  • Внутренний (level=1) уровень столбцов содержитзначения от 0 до 337

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

df.columns = ['_'.join(map(str, c)) for c in df.columns]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...