为什么Jupyter使用列';s值来填充列名?

为什么Jupyter使用列';s值来填充列名?,jupyter,spss,Jupyter,Spss,我使用的是一个SPSS.sav文件,它有一些典型的列名,比如名称、类型、宽度等等。“名称”列标记行m1、I1、I2等 这是Jupyter笔记本: 如您所见,列名是“Name”的条目: 也就是说,不是“名称”、“类型”、“宽度”作为列名,而是“名称”的值:m1、I1、I2等 我对Jupyter和SPSS很陌生,不知道从哪里开始 编辑: 根据拉胡尔·辛格的建议,我添加了header=None,尽管read_spss()似乎不认识这个论点 import pandas as pd df = pd.re

我使用的是一个SPSS.sav文件,它有一些典型的列名,比如名称、类型、宽度等等。“名称”列标记行m1、I1、I2等

这是Jupyter笔记本:

如您所见,列名是“Name”的条目: 也就是说,不是“名称”、“类型”、“宽度”作为列名,而是“名称”的值: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'

`
将熊猫作为pd导入
df=pd.read_spss('./Data.sav',header=None)
df.head()
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在里面
1进口熊猫作为pd
---->2 df=pd.read\u spss('./数据\u ANQAR\u Wave39.sav',标题=None)
3.首长()
TypeError:read_spss()获得意外的关键字参数“header”
`

事实上,这一问题与jupyter无关,而是与熊猫有关(我们不应该说这是一个问题:))

代码:

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()

您在SPSS中看到的不是数据(数据编辑器),而是元数据(变量视图),它显示列的特征,而不是数据本身。Pandas正在正确读取数据,请在SPSS中切换到数据编辑器以查看我的意思。

请将代码添加为文本,而不是图片。实际上,您的数据位于.sav文件中,并且
pd。read_SPSS()
不支持
属性。因此,请尝试将.sav文件转换为.csv,然后您可以使用
header=None
pd.read\u csv()
。我找到了这个解决方案,Alejandro JCUE回答了这个问题,请尝试一下,并让我们知道。如果有任何问题。
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()