1 回答

TA貢獻(xiàn)1804條經(jīng)驗 獲得超3個贊
您的sep指定錯誤(它s*以 而不是 結(jié)尾\s*,這意味著它正在尋找 0 到無限個s字符之間)。這就是為什么您只捕獲前導(dǎo)空格而不捕獲 后的尾隨空格;。順便說一句,這也干擾了 (1),因為您試圖替換'N?'但值為' N?'。sep='\s*\;\s*'代替使用。
您將來可以做的一件事是自己打印出有問題的值,以確保它們包含他們認(rèn)為您包含的內(nèi)容,例如ts.iloc[1].val。
另外,如果NaNunicode 中的值有問題,您可以在解析之前將其剝離:
csv = io.StringIO(ex2.replace(u'N\xc4', '[MISSING]'))
ts = pd.read_csv(csv,
skiprows=4, decimal=',', index_col=0, usecols=[0,1],
dayfirst=True, parse_dates=True, names=['date', 'val'],
na_values='[MISSING]', sep='\s*\;\s*')
...這會給...
val
date
1939-10-01 1.1
1939-12-01 NaN
1940-01-01 10.0
添加回答
舉報