簡體   English   中英

合並兩個大小不同的python列表。 標題列表到數據

[英]Combining two list python different sizes. Header list to data

我使用bs4從Wikipedia收集體育數據。 我能夠提取兩個列表:統計頭列表和統計。 我想通過合並兩個列表來重新創建此df。 在SO上也有類似的帖子,但是這正是我所需要的。 len(stat_header)= 13,len(stats)= 195

我能夠創建字典,但在此過程中丟失了數據。 我嘗試轉換為數組,但由於形狀原因,仍然無法創建df或串聯。 我沒有得到正確的答案。

stat_header = ['Year','Team','GP','GS','MPG','FG%','3P%','FT%',
'RPG',APG',SPG','BPG','PPG']
# Just a sample 14 out of 195
stats = ['1984-85','Chicago','82','82','38.3','.515','.173',
'.845','6.5', '5.9','2.4','.8','28.2','1985–86',

這可行,但我缺少很多數據(大多數團隊名稱)

result = {v: stat_header[i % len(stat_header)]  
          for i, v in enumerate(stats)} 
print("resultant dictionary : ", str(result))

重塑(無效,只是形狀錯誤)

x = np.reshape(stats, (15, 13))
y = np.reshape(stat_header, (1, 13)) 
pd.DataFrame(x, columns=y)
And this...
np.concatenate( ( np.fromstring( y, dtype=np.uint8 ), x ), axis=0 )

我找到並提取了正確的信息。 我希望將其放回df中。

您可以復制stat_header的內容

stat_header = ['Year','Team','GP','GS','MPG','FG%','3P%','FT%',
'RPG','APG','SPG','BPG','PPG']

stats = ['1984-85','Chicago','82','82','38.3','.515','.173',
'.845','6.5', '5.9','2.4','.8','28.2','1985–86',..]

stat_header = stat_header * (len(stats)//len(stat_header))

然后使用zip構造字典

result = list(zip(stats,stat_header))

結果將是:

[('1984-85', 'Year'), ('Chicago', 'Team'), ('82', 'GP'), ('82', 'GS'), ('38.3', 'MPG'), ('.515', 'FG%'), ('.173', '3P%'), ('.845', 'FT%'), ('6.5', 'RPG'), ('5.9', 'APG'), ('2.4', 'SPG'), ('.8', 'BPG'), ('28.2', 'PPG')]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM