先看以下兩個逗點分隔檔:

txt檔為記事本自行寫入
csv檔為Libre Office開啟後再儲存
發現csv檔(Libre)會自動補逗點跟空值
將所有列都捕到長度跟最長列一致
pandas.read_csv() vs
csv.reader()有何差別?

csv.reader()輸出結果:

csv.reader()兩個檔案都能正常讀取
pandas.read_csv()輸出結果:

csv.reader()裡面要放io.TextIOWrapper
前面要用with open(“路徑\檔名.副檔名”, “r”) as f
產生的f即為io.TextIOWrapper
不要在csv.reader()中誤放
“路徑\檔名.副檔名”
會無法讀取檔案內容
將錯誤的csv物件轉為list時
list會如下:
[[‘C’], [‘:’], [‘\\’], [‘P’], [‘y’], [‘t’], [‘h’], [‘o’], [‘n’], [‘\\’], [‘e’], [‘x’], [‘a’], [‘m’], [‘p’], [‘l’], [‘e’], [‘\\’], [‘c’], [‘s’], [‘v’], [‘r’], [‘e’], [‘a’], [‘d’], [‘e’], [‘r’], [‘\\’], [‘s’], [‘k’], [‘l’], [‘_’], [‘c’], [‘a’], [‘s’], [‘h’], [‘F’], [‘l’], [‘o’], [‘w’], [‘.’], [‘t’], [‘x’], [‘t’]]
pandas.read_csv()
裡面放的就確實是”路徑\檔名.副檔名”
前面無需with open() as f : 的語法
無法讀取每列長度不同的逗點分隔檔
出現pandas._libs.parsers.raise_parser_error
ParserError:Error tokenizing data. C error: Expected 8 fields in line 3, saw 9
pandas以直行(欄)為單位
DataFrame又是多個Series共用相同index
造成此問題
每列代表不同年期現金流
長度不一樣實屬正常
Libre Office自動補逗點跟空值
反而會造成numpy_financial.irr()
運算錯誤
最好可以加移除空元素的語法
避免使用者誤用Libre Office
寫逗點分隔檔
您將輸入n年度末解約金?n=?
待使用者輸入下一筆資料或-9999離開
pandas讀取Excel檔(.xlsx)
import pandas as pd
f3 = r”C:\Python\example\csvreader\skl_cashFlowIRR2.xlsx”
df3 = pd.read_excel(f3) ;
print( df3,type(df3) )
#type為DataFrame

推薦hahow線上學習python: https://igrape.net/30afN





![Python 打造高容錯搜尋引擎:BM25、Bigram 與difflib自動糾錯實戰; from rank_bm25 import BM25Okapi ; bm25 = BM25Okapi(corpus_tokens) #corpus_tokens: list[list[str]] Python 打造高容錯搜尋引擎:BM25、Bigram 與difflib自動糾錯實戰; from rank_bm25 import BM25Okapi ; bm25 = BM25Okapi(corpus_tokens) #corpus_tokens: list[list[str]]](https://i1.wp.com/savingking.com.tw/wp-content/uploads/2026/02/20260209150527_0_a24c17.png?quality=90&zoom=2&ssl=1&resize=350%2C233)


![Python: 如何在pandas.read_csv() or pandas.read_excel() 中使用keep_default_na =False , na_values =[] 保留文件中的原始“NA”? Python: 如何在pandas.read_csv() or pandas.read_excel() 中使用keep_default_na =False , na_values =[] 保留文件中的原始“NA”?](https://i1.wp.com/savingking.com.tw/wp-content/uploads/2024/05/20240530215737_0.png?quality=90&zoom=2&ssl=1&resize=350%2C233)

近期留言