Почему `df.columns` является пустым списком, в то время как я могу видеть имена столбцов, если распечатываю фрейм данных? Python Pandas - PullRequest
0 голосов
/ 03 мая 2020
import pandas as pd
DATA = pd.read_csv(url)
DATA.head()

У меня большой набор данных с десятками столбцов. После загрузки, как выше, в Colab, я вижу название каждого столбца. Но если запустить DATA.columns, просто верните Index([], dtype='object'). Что в этом происходит?

Теперь я считаю невозможным выделить несколько столбцов без имен столбцов. Один из способов - указать names = [...] при загрузке, но я не хочу этого делать, так как столбцов слишком много. Поэтому я ищу способ индексировать столбец целыми числами, как в R df[:,[1,2,3]] просто дало бы мне первые три столбца кадра данных. Почему-то Pandas, кажется, фокусируется на именах столбцов и делает целочисленную индексацию очень неудобной.

Итак, что я спрашиваю: (1) Что я сделал не так? Могу ли я получить эти имена столбцов также при загрузке кадра данных? (2) Если нет, как я могу выбрать [0, 1, 10]-й столбец по списку целых чисел?


Кажется, что проблема в загрузке, поскольку DATA.shape возвращает (10000,0). Я перезагружаю код загрузки несколько раз, и внезапно все возвращается на круги своя. Может быть, Колаб вздремнул или что-то?

1 Ответ

1 голос
/ 03 мая 2020

Вы можете прекрасно это сделать, используя df.loc[:,[1,2,3]], но я бы посоветовал вам использовать имена, потому что, если столбцы когда-нибудь изменят порядок или вы добавите новые столбцы, код может нарушить его.

...