Повторно выберите кадр данных Pandas из определенного индекса - PullRequest
1 голос
/ 25 сентября 2019

У меня есть фрейм данных, который я хотел бы «повторно выбрать» из-за отсутствия лучшего термина, используя индекс.

Column1 | Column2 | Column3
   1    |    2    |    3
   4    |    5    |    6
Data    |         |  
Header  | Header2 | Header3
   7    |    8    |    9

Я бы хотел выбрать этот кадр данных, но конкретно с индексом 4,0, чтобы он выглядел следующим образом:

Header  | Header2 | Header3
   7    |    8    |    9

Я знаю, что могу сделать что-то вроде

df.iloc[[4,5], [0,1,2]]

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

Ответы [ 2 ]

0 голосов
/ 25 сентября 2019

Для будущих путешественников я закончил тем, что делал это несколько странным образом.Сначала я получил интересующие меня столбцы:

columns = [x for x in df.iloc[4].values.flatten().tolist() if str(x) != 'nan']

Затем я разделил данные, которые мне нужны:

data = df.iloc[5:, 0:2].values

И, наконец, создал новый кадр данных:

df = pd.DataFrame(data, columns=columns)

Где я устанавливаю столбцы, 4 - это индекс строки, в которой находятся столбцы (число, которое я уже знал).Когда я устанавливаю данные, 5: обозначает все данные из строки 5 и далее (поскольку я не знал, где она закончилась), а 0:2 - это столбцы 1-3.

Я не уверен, что это лучший способ сделать это, но он работает для того, что мне нужно.

0 голосов
/ 25 сентября 2019

Использование:

df[df["Column1"]=="Data"].index.item()

Вы получите индекс для местоположения строки, в которой находится «Данные».Оттуда вы можете использовать df.iloc, чтобы найти данные, которые вы ищете.

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