Pandas read_csv имеет правильные заголовки, но имен столбцов нет

#python #pandas #csv

#python #pandas #csv

Вопрос:

Я читаю простой CSV-файл с pandas:

 import pandas as pd
df = pd.read_csv('spread.csv', header=0)
df
  

вывод df

Однако, пытаясь перечислить имена столбцов, я не получаю ни одного:

 list(df.columns.names)
  

Вывод просто None. Что, похоже, не соответствует приведенным выше выводам или документации. Я делаю что-то не так или что здесь происходит?

Ответ №1:

Если вы хотите просто получить имена столбцов A, B, C, D, вам нужно всего лишь выполнить

 print(df.columns)
  

Ответ №2:

Вы не назначили columns names , поэтому при вызове names вывод по умолчанию отображается как [None]

 df.columns.names
Out[934]: FrozenList([None])
list(df.columns.names)
Out[935]: [None]

df.columns.names=['SOMETHING']
df
Out[931]:
SOMETHING  id  A  B
0           1  1  2
1           2  2  3
df.columns.names
Out[932]: FrozenList(['SOMETHING'])
list(df.columns.names)
Out[937]: ['SOMETHING']
  

Если вам просто нужны имена столбцов фрейма данных

 list(df)
  

 Data Input 

data = '''
id  A B
1   1 2
2   2 3 '''


import io
import pandas as pd

df = pd.read_csv(io.StringIO(data), sep='s ')