iT邦幫忙

0

pandas key error

  • 分享至 

  • xImage

import pandas as pd
one_day_pe=pd.read_csv('files/yieldbydate.csv',encoding='cp950',header=1)
pe_data=[]
sum_pe=float(0)
#標題無法對齊 造成key error
for i in one_day_pe['本益比']:
sum_pe=float(sum_pe)+float(one_day_pe[i])
pe_data.append({
'stockNo':str(one_day_pe['證券代號'][i]),
'peratio':one_day_pe[i]
})
我還試過二種方法 one_day_pe:(把header-1拿掉就可以這樣)ㄧ樣key error
with open('files/yieldbydate.csv',encoding='cp950') as file:
one_day_pe=csv.reader(file)
然後要存取時會出現io error 看網路是file already close.
!
讀進來的csv長這樣
[https://ithelp.ithome.com.tw/upload/images/20230208/20156023NqU02L8WIq.png]
謝謝大家

增廣建文 iT邦研究生 5 級 ‧ 2023-02-11 01:17:46 檢舉
跟標題有沒有對其無關吧 單純是印df出來時跑版
增廣建文 iT邦研究生 5 級 ‧ 2023-02-11 01:26:41 檢舉
看不懂loop想要達到的效果
我解決了,那你能解決嗎?還是單純增加一下po文數
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
kennex_x
iT邦新手 4 級 ‧ 2023-02-17 16:25:00

Dears,
首先,先重新排版一下您的Code...
不排版真的看不懂你的問題...

import pandas as pd
one_day_pe=pd.read_csv('files/yieldbydate.csv',encoding='cp950',header=1)
pe_data=[]
sum_pe=float(0)
#標題無法對齊 造成key error
for i in one_day_pe['本益比']:
    sum_pe=float(sum_pe)+float(one_day_pe[i])
    pe_data.append({
        'stockNo':str(one_day_pe['證券代號'][i]),
        'peratio':one_day_pe[i]})

從以上可以看的出來是你的迴圈的部分寫錯了,跟表頭標題無關。
以下我大致釐清理解後幫你重新撰寫一下你的Code。

import pandas as pd

one_day_pe = pd.read_csv('files/yieldbydate.csv', encoding = 'cp950', header = 1)
pe_data, sum_pe = {"stockNo" : [], "peratio":[]}, 0.0
for i in range(list(len(one_day_pe['本益比']))):
    sum_pe += float(list(one_day_pe["本益比"])[i])
    pe_data["stockNo"].append(list(one_day_pe["證券代號"])[i])
    pe_data["peratio"].append(list(one_day_pe["本益比"])[i])

pe_data = pd.DataFrame(pe_data)

有問題再提出來吧,謝謝。

我要發表回答

立即登入回答