Почему Jupyter использует значения столбца для заполнения имен столбцов? - PullRequest
0 голосов
/ 11 ноября 2019

Я использую файл SPSS .sav, который имеет типичные имена столбцов, такие как имя, тип, ширина и т. Д. Столбец 'names' обозначает строки m1, I1, I2 и т. Д.

Вот записная книжка Jupyter: https://imgur.com/9hXuL7u

import pandas as pd
df = pd.read_spss('./Data.sav')
df.head()

Как видите, имена столбцов являются записямидля «Имени»: https://imgur.com/ZVMS0F0 Т.е. вместо «имени», «типа», «ширины» в качестве имен столбцов существуют значения для «имени»: m1, I1, I2 и т. д.

Я довольно новичок в Jupyter и SPSS и не знаю, с чего начать.

РЕДАКТИРОВАТЬ: Следуя советам Рахула Сингха, я добавил header=None, хотя read_spss (), похоже, непризнать аргумент.

import pandas as pd
df = pd.read_spss('./Data.sav',header=None)
df.head()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-39-77d006c914c9> in <module>
      1 import pandas as pd
----> 2 df = pd.read_spss('./Data_ANQAR_Wave39.sav',header=None)
      3 df.head()

TypeError: read_spss() got an unexpected keyword argument 'header'

`

1 Ответ

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

На самом деле это проблема не с jupyter, а с пандами (мы не должны говорить об этом :))

Usually when you read data from any file(.csv, .txt etc) and header (column names) is is not available in it then pandas will automaticly take first row as header.
To get rid of this problem you can provide `header=None`

Код:

import savReaderWriter 
import numpy as np
import pandas as pd

# Convert .sav file into .csv
reader_np = savReaderWriter.SavReaderNp("Data.sav")
array = reader_np.to_structured_array("outfile.dat") 
np.savetxt("Data.csv", array, delimiter=",")
reader_np.close()

# Read .csv file without header
df = pd.read_spss("Data.csv",header=None)
df.head()
...