本文主要介绍python导入csv文件时SyntaxError的分析,涉及到python导入csv文件的三种方法,有一定的参考价值,有需要的朋友可以参考一下。
背景
Np.loadtxt()用于从文本中加载数据。
文档中的每一行必须包含相同的数据。
***
loadtxt(fname,dtype=class'float ',comments='# ',delimiter=None,converters=None,skiprows=0,usecols=None,unpack=False,ndmin=0)
Fname要读取的文件、文件名或生成器。
数据类型,默认浮点数。
评论评论。
分隔符,默认情况下是一个空格。
Skiprows跳过读取的前几行,默认值为0,必须是int整数。
Usecols:要读取的列,0是第一列。例如,usecols=(1,4,5)将提取第2、5和6列。默认情况下,读取所有列。
解包,如果为真,将单独读取。
问题
今天在ipython中读取文件时,
代码是:
将numpy作为np导入
x=NP . load txt(' c:\ users \ sunshine \ desktop \ scj ym _ 3 ynp 3 gj \ source data \ 00001 . CSV ',delimiter=',',skiprows=(1),usecols=(1,4,6),)
发生了以下错误:
语法错误:(unicode错误)“unicodeescape”编解码器无法解码位置2-3中的字节:truncated \UXXXXXXXX escape
编码错误。查找问题后,发现采用了以下解决方案:
' r ' c:\ Users \ experialed \ Desktop \ Python '
' c:\ \ Users \ \ experialed \ \ Desktop \ \ Python '
' c:/Users/experialed/Desktop/Python '
看到这里,我就知道自己错在哪里了。
编写字符串时有几点需要注意:
1.长字符串
很长的字符串。当它跨越多行时,可以用三个引号代替普通引号。
即:
print(' ' '这是一个很长的字符串。
还会继续。
这还没有结束。
‘你好,世界’
还在。'''
可以注意到,这样一来,字符串中就可以同时使用单引号和双引号了。
2.原始字符串
也就是说,print(r'c:\nwhere ')
反斜杠有一个特殊的作用,它可以转义,它可以帮助我们给不能直接加的字符串加上单引号和双引号。
\n,换行符,可以存储在字符串中。
在上面的代码块中,很明显我们想要一个路径,如果我们不使用原来的字符串,我们将得到
列车员:在哪里?
对,为了防止这种情况,我们也可以使用反斜杠进行转义,但是如果这个路径很长,就像本文中的路径一样:
c:\ \ users \ \ sunshine \ \ desktop \ \ scj ym _ 3 ynp 3 gj \ \ source data \ \ \ 000001 . CSV
用双斜杠,会很麻烦。
此时,我们可以使用原来的字符串。
原字符串以r开头。
原始字符串不能以反斜杠结尾。
要在末尾使用反斜杠,print(r ' C:\ program files \ foo \ bar ' ' \ \ ')表示C:\Programfiles\foo\bar\
在常规python字符串中,\U字符组合表示扩展的Unicode码位转义。
所以这里有一个错误。
python导入csv文件的三种方法
#最初的方式
lines=[line.split(',')for line in open('iris.csv')]
df=[[float(x)for x in line[:4]]for line in line[1:]]
#使用numpy包
将numpy作为np导入
lines=np.loadtxt('iris.csv ',分隔符=',',dtype='str ')
df=lines[1:4]。astype('float ')
#使用熊猫套餐
进口熊猫作为pd
df=pd.read_csv('iris.csv ')
df=df.ix[:4]
三种方法中的最后一种最简单,但需要的时间稍长。第一种最麻烦,但耗时最短。这从ipython中的神奇函数%%timeit就可以看出。
总结
以上就是关于python导入csv文件中SyntaxError的分析。希望对你有帮助。感兴趣的朋友可以继续参考本站其他相关话题。如有不足之处,欢迎留言指出。感谢您对本网站的支持!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。