2017-08-02 345 views
2

我寫了一個for循環,假設這是一個足球隊的勝利紀錄並將其分開,以獲得贏得比賽和比賽失敗的價值。不幸的是我的分割(' - ')命令似乎沒有在我寫的for循環中使用時返回一個列表。.Split()for for循環不返回列表

該數據集從維基百科上獲取並且數據在熊貓數據框內。

這裏是我得到的數據框:

test = pd.read_html('https://en.m.wikipedia.org/wiki/ 
    List_of_Michigan_Wolverines_football_seasons') 

year_football = test[-1].T.set_index(0).T.dropna(axis=0, thresh=3) 

,我想通過迭代名單是:

#format W-L 
win_loss = ['7–1' '6–2' '2–6' '1–7' '3–5' '6–2' '6–2' '3–5' '3–5' '6–2' '7–2'] 

其中我做了一下清潔,然後調用:

print(year_football['Conference'].values) 

我的for循環:

wins = [] 
games = [] 

for season in year_football['Conference'].values: 
     win_loss = season.split('-') 
     wins.append(win_loss[0]) 
     games.append(int(win_loss[0])) + int(win_loss[1])) 
     print(season) 
     print(type(season)) 
     print(win_loss) 

輸出爲列表的第一個成員是:

7–1 #print(season) 
<class 'str'> #print(type(season)) 
['7–1'] #print(win_loss) 

我無法弄清楚我做錯了什麼,.split()工作的罰款之外循環。希望不是拼寫錯誤。 (另外,在Jupyter運行是否有幫助)

+8

要拆分的'-'分裂,但你'season'包含'-' - 看到其中的差別?不一樣的性格。 –

+8

'ord(' - ')'是8211; 'ord(' - ')'是45. – DyZ

+0

只是爲了澄清,它*是*返回一個列表,它只是不分裂你想要的地方。 –

回答

4

更改您的for循環來對實際字符

for season in year_football['Conference'].values: 
     win_loss = season.split(chr(8211)) # I changed this line 
     wins.append(win_loss[0]) 
     games.append(int(win_loss[0])) + int(win_loss[1])) 
     print(season) 
     print(type(season)) 
     print(win_loss)