python導(dǎo)入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ù)類型,默認(rèn)float。
comments注釋。
delimiter分隔符,默認(rèn)是空格。
skiprows跳過前幾行讀取,默認(rèn)是0,必須是int整型。
usecols:要讀取哪些列,0是第一列。例如,usecols=(1,4,5)將提取第2,第5和第6列。默認(rèn)讀取所有列。
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
編碼錯誤,經(jīng)搜索問題,發(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')
反斜線有特殊的作用,它會轉(zhuǎn)義,可以幫助我們在字符串中加入單引號和雙引號等不能直接加入的內(nèi)容。
\n,換行符,可以存放于字符串中。
以上代碼塊中,很顯然我們是想要一個路徑,而如果不使用原始字符串,我們就會得到
c:where。
對,為了防止這種情況,我們還可以使用反斜線進(jìn)行轉(zhuǎn)義,但是如果這個路徑很長,就像本文的路徑:
C:\\\Users\\\sunshine\\\Desktop\\\scjym_3yNp3Gj\\\源數(shù)據(jù)\\\000001.csv
使用雙斜線,就會很麻煩。
這時,我們就可以用原始字符串。
原始字符串以r開頭。
原始字符串結(jié)尾不能是反斜線。
如要結(jié)尾用反斜線,print(r'C:\Programfiles\foo\bar''\\')即C:\Programfiles\foo\bar\
在常規(guī)python字符串中,\U字符組合表示擴(kuò)展的Unicode代碼點轉(zhuǎn)義。
因此這里出現(xiàn)了錯誤。
python導(dǎo)入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來看。
總結(jié)
以上就是本文關(guān)于python導(dǎo)入csv文件出現(xiàn)SyntaxError問題分析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關(guān)文章
深入理解python?生成器、迭代器、動態(tài)新增屬性及方法
這篇文章主要介紹了python?生成器、迭代器、動態(tài)新增屬性及方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04
關(guān)于pip安裝opencv-python遇到的問題
這篇文章主要介紹了關(guān)于pip安裝opencv-python遇到的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02
如何用Python對數(shù)學(xué)函數(shù)進(jìn)行求值、求偏導(dǎo)
這篇文章主要介紹了如何用Python對數(shù)學(xué)函數(shù)進(jìn)行求值、求偏導(dǎo)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
python簡單實現(xiàn)最大似然估計&scipy庫的使用詳解
這篇文章主要介紹了python簡單實現(xiàn)最大似然估計&scipy庫的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
python3中celery異步框架簡單使用+守護(hù)進(jìn)程方式啟動
這篇文章主要介紹了python3中celery異步框架簡單使用+守護(hù)進(jìn)程方式啟動,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

