python導入csv文件出現(xiàn)SyntaxError問題分析
背景
np.loadtxt()用于從文本加載數(shù)據(jù)。
文本文件中的每一行必須含有相同的數(shù)據(jù)。
***
loadtxt(fname,dtype=<class'float'>,comments='#',delimiter=None,converters=None,skiprows=0,usecols=None,unpack=False,ndmin=0)
fname
要讀取的文件、文件名、或生成器。
dtype
數(shù)據(jù)類型,默認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('C:\Users\sunshine\Desktop\scjym_3yNp3Gj\源數(shù)據(jù)\000001.csv',delimiter= ',',skiprows=(1),usecols= (1,4,6),unpack= False)
出現(xiàn)下面的錯誤:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
編碼錯誤,經搜索問題,發(fā)現(xiàn)采用如下解決方案:
r'C:\Users\expoperialed\Desktop\Python' 'C:\\Users\\expoperialed\\Desktop\\Python' 'C:/Users/expoperialed/Desktop/Python'
看到這里我就明白自己錯在哪兒了。
書寫字符串有幾個需要注意的地方:
1.長字符串
非常長的字符串,跨多行時,可以使用三個引號代替普通引號。
即:
print('''This is a very long string. it will continue. and it's not over yet. ''hello,world'' still here.'''
可以注意到,使用這種方式時,字符串中可以同時使用單引號和雙引號
2.原始字符串
即print(r'c:\nwhere')
反斜線有特殊的作用,它會轉義,可以幫助我們在字符串中加入單引號和雙引號等不能直接加入的內容。
\n,換行符,可以存放于字符串中。
以上代碼塊中,很顯然我們是想要一個路徑,而如果不使用原始字符串,我們就會得到
c:where。
對,為了防止這種情況,我們還可以使用反斜線進行轉義,但是如果這個路徑很長,就像本文的路徑:
C:\\\Users\\\sunshine\\\Desktop\\\scjym_3yNp3Gj\\\源數(shù)據(jù)\\\000001.csv
使用雙斜線,就會很麻煩。
這時,我們就可以用原始字符串。
原始字符串以r開頭。
原始字符串結尾不能是反斜線。
如要結尾用反斜線,print(r'C:\Programfiles\foo\bar''\\')
即C:\Programfiles\foo\bar\
在常規(guī)python字符串中,\U字符組合表示擴展的Unicode代碼點轉義。
因此這里出現(xiàn)了錯誤。
python導入csv文件的三種方法
#原始的方式 lines = [line.split(',') for line in open('iris.csv')] df = [[float(x) for x in line[:4]] for line in lines[1:]] #使用numpy包 import numpy as np lines = np.loadtxt('iris.csv',delimiter=',',dtype='str') df = lines[1:,:4].astype('float') #使用pandas包 import pandas as pd df = pd.read_csv('iris.csv') df=df.ix[:,:4]
這三種方法中最后一種最簡單,不過花費時間比較長一點,第一種最麻煩,不過用時最短。這個可以通過ipython中的magic函數(shù)%%timeit
來看。
總結
以上就是本文關于python導入csv文件出現(xiàn)SyntaxError問題分析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關文章
selenium學習教程之定位以及切換frame(iframe)
這篇文章主要給大家介紹了關于selenium學習教程之定位以及切換frame(iframe)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01Python調用百度AI實現(xiàn)圖片上文字識別功能實例
百度AI功能還是很強大的,百度AI開放平臺真的是測試接口的天堂,免費接口很多,當然有量的限制,但個人使用是完全夠用的,下面這篇文章主要給大家介紹了關于Python調用百度AI實現(xiàn)圖片上文字識別功能的相關資料,需要的朋友可以參考下2021-09-09python利用socket實現(xiàn)客戶端和服務端之間進行通信
這篇文章主要介紹了python實現(xiàn)客戶端和服務端之間進行通信,文章通過python利用socket展開詳情介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-05-05