![7f2e2f359eee2e2ad9be49f5fe04f883.png](https://i-blog.csdnimg.cn/blog_migrate/b1ff7a9df3db16019fd27addd9e8ae98.jpeg)
分为以下几种情况:
文件自带列标题
原始文件如图所示,含有列标题
![e57ff94aa69baba440bfd7360e3ac5c7.png](https://i-blog.csdnimg.cn/blog_migrate/b8603a5e07b2ee4a4c90689451a03bd3.png)
读取上述文件内容的代码
url="/path/iris.data"
iris=pd.read_csv(url)
# 等价于 iris=pd.read_csv(url,header=0)
iris.head()
结果
![bffef14c71d20e4943942ef66ecad50b.png](https://i-blog.csdnimg.cn/blog_migrate/92c006b099179bb83787ecde2b84627b.png)
文件未含列标题
原始文件如图所示,未含有列标题
![2bbaa077fd89752a7b2990a627452b75.png](https://i-blog.csdnimg.cn/blog_migrate/2fca6043f5b5b8e172997825c588f4bb.png)
读取上述文件内容的代码
url="/path/iris.data"
iris=pd.read_csv(url)
iris.head()
结果
![9b74caa4b7beacbd2ebb20e149cc9a3b.png](https://i-blog.csdnimg.cn/blog_migrate/ba4277b1183a69b4a7aa635305db3ba9.png)
注释:读取的时候默认把第一行数据作为列名了,这样会导致总体数据少了一列。
解决方法
url="/path/iris.data"
iris=pd.read_csv(url,header=None)
iris.head()
结果
![5fdc92db8db8e30f6d330143fa04911b.png](https://i-blog.csdnimg.cn/blog_migrate/a55e2c1709d9f62f7a4bab21260ab147.png)
注释:利用header=None告诉pandas,将要读取的数据中不包含列名。
若想将列名设置为自己指定的,可以通过下面的方式
iris.columns = ['sepal_length','sepal_width', 'petal_length', 'petal_width', 'class']
iris.head()
结果
![80683f0ec3b8b19d78e71f42d875f0ff.png](https://i-blog.csdnimg.cn/blog_migrate/7940886dc202d0deaa3f7cfffe2bffdb.png)
也可以在读取的时候,同时指定列名
url="/path/iris.data"
iris = pd.read_csv(url,header=None,names=['sepal_length','sepal_width', 'petal_length', 'petal_width', 'class'])
iris.head()
注释:文件未含列标题的情况下,如果pandas读取文件时已经设置了names属性,可以不写header=None,可以达到同样的效果。