Analyse de SyntaxError lorsque python importe des fichiers csv_python

韦小宝
Libérer: 2017-12-16 11:20:03
original
2238 Les gens l'ont consulté

这篇文章主要介绍了python导入csv文件出现SyntaxError问题分析,同时涉及python导入csv文件的三种方法,具有一定借鉴价值,对Python感兴趣的朋友可以参考下。

背景

np.loadtxt()用于从文本加载数据。

文本文件中的每一行必须含有相同的数据。

***

loadtxt(fname,dtype=<class&#39;float&#39;>,comments='#',delimiter=None,converters=None,skiprows=0,usecols=None,unpack=False,ndmin=0)

fname要读取的文件、文件名、或生成器

dtype数据类型,默认float。

comments注释。

delimiter分隔符,默认是空格。

skiprows跳过前几行读取,默认是0,必须是int整型。

usecols:要读取哪些列,0是第一列。例如,usecols=(1,4,5)将提取第2,第5和第6列。默认读取所有列。

unpack如果为True,将分列读取。

问题

今天在ipython中读取文件时,

代码为:


import numpy as np
x = np.loadtxt(&#39;C:\Users\sunshine\Desktop\scjym_3yNp3Gj\源数据\000001.csv&#39;,delimiter= &#39;,&#39;,skiprows=(1),usecols= (1,4,6),unpack= False)
Copier après la connexion


出现下面的错误:


SyntaxError: (unicode error) &#39;unicodeescape&#39; codec can&#39;t decode bytes in position 2-3: truncated \UXXXXXXXX escape
Copier après la connexion


编码错误,经搜索问题,发现采用如下解决方案:


r&#39;C:\Users\expoperialed\Desktop\Python&#39;
&#39;C:\\Users\\expoperialed\\Desktop\\Python&#39;
&#39;C:/Users/expoperialed/Desktop/Python&#39;
Copier après la connexion


看到这里我就明白自己错在哪儿了。

书写字符串有几个需要注意的地方:

1.长字符串

非常长的字符串,跨多行时,可以使用三个引号代替普通引号。

即:


print(&#39;&#39;&#39;This is a very long string.
it will continue.
and it&#39;s not over yet.
&#39;&#39;hello,world&#39;&#39;
still here.&#39;&#39;&#39;
Copier après la connexion


可以注意到,使用这种方式时,字符串中可以同时使用单引号和双引号

2.原始字符串

print(r&#39;c:\nwhere&#39;)

反斜线有特殊的作用,它会转义,可以帮助我们在字符串中加入单引号和双引号等不能直接加入的内容。

\n,换行符,可以存放于字符串中。

以上代码块中,很显然我们是想要一个路径,而如果不使用原始字符串,我们就会得到

c:where。

对,为了防止这种情况,我们还可以使用反斜线进行转义,但是如果这个路径很长,就像本文的路径:

C:\\\Users\\\sunshine\\\Desktop\\\scjym_3yNp3Gj\\\源数据\\\000001.csv

使用双斜线,就会很麻烦。

这时,我们就可以用原始字符串。

原始字符串以r开头。

原始字符串结尾不能是反斜线。

如要结尾用反斜线,print(r&#39;C:\Programfiles\foo\bar&#39;&#39;\\&#39;)C:\Programfiles\foo\bar\

在常规python字符串中,\U字符组合表示扩展的Unicode代码点转义。

因此这里出现了错误。

python导入csv文件的三种方法


#原始的方式
lines = [line.split(&#39;,&#39;) for line in open(&#39;iris.csv&#39;)]
df = [[float(x) for x in line[:4]] for line in lines[1:]]
#使用numpy包
import numpy as np
lines = np.loadtxt(&#39;iris.csv&#39;,delimiter=&#39;,&#39;,dtype=&#39;str&#39;)
df = lines[1:,:4].astype(&#39;float&#39;)
#使用pandas包
import pandas as pd
df = pd.read_csv(&#39;iris.csv&#39;)
df=df.ix[:,:4]
Copier après la connexion


这三种方法中最后一种最简单,不过花费时间比较长一点,第一种最麻烦,不过用时最短。这个可以通过ipython中的magic函数%%timeit来看。

总结

以上就是本文关于python导入csv文件出现SyntaxError问题分析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关推荐:

用Python语言描述最大连续子序列和

Python爬虫入门心得分享

python版简单工厂模式的介绍

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!