pandas.read_csv(r”路徑\檔名.副檔名”) vs
csv.reader(io.TextIOWrapper) 有何差別?
myDataFrame = pandas.read_csv()
無法讀取每列長度不同的資料
每列代表不同年期現金流
長度不一樣實屬正常
Libre Office自動補逗點跟空值
反而會造成numpy_financial.irr()
運算錯誤
除非使用Libre,
若用記事本編輯逗點分隔檔
使用者也不會補逗點跟空值
csv.reader()在計算IRR的時候
較為好用
本篇只為特意用pandas處理
import pandas as pd
f1 = r”C:\Python\example\csvreader\skl_cashFlow.txt”
#f1每列長度不一樣
f2 = r”C:\Python\example\csvreader\skl_cashFlow.csv”
#f2每列長度一樣
df2 = pd.read_csv(f2) ;
#配合read_csv(),檔案還要加上11個欄標籤0~10,
#不然會將第一列資料當成欄標籤
#header=None可以讀取無欄標籤的csv檔
print(“DataFrame:\n”, df2,”\n”,type(df2),”\n”,”=”*30 )
# df1_Fail = pd.read_csv(f1) #將讀取失敗
#對DataFrame取值:
print(“.loc[]取值],取得Series物件\n”,\
df2.loc[0],”\n”,type( df2.loc[0] ),”\n”,”=”*30)
print(“將Series物件轉為list:\n”, list(df2.loc[0]) )
skl_cashFlow.csv每列內容
輸出的DataFrame:
輸出的Series物件
並將Series轉為list:
可以取得上面的list
去掉nan元素後,
就可以用numpy_financial.irr()
計算內部報酬率
程式碼:
您將輸入n年度末解約金?n=?
待使用者輸入下一筆資料或-9999離開
近期留言