我已经提取了一堆幸存者赛季的数据,并将参赛者表分类为一个数据框架.我已经添加了一个专栏来确定选手在哪个赛季比赛.我想将索引设置为季节,最终按季节排序,但当我将索引设置为季节时,所有值都在NaN处显示.不知道我做错了什么.我应该参考哪些文件?. set_index文档对我来说并不是很开放,我是一个初学者,可能超出了我的深度.

当前代码:

import pandas as pd
import numpy as py

contestants = {}

for season in range(11, 47) :
    wiki_url = f'https://en.wikipedia.org/wiki/Survivor_{season}'

    tables = pd.read_html(wiki_url)
    contestants[season] = tables[1]
    contestants[season]['Season'] = season

contestants_joined = pd.concat(contestants.values()).set_index('Season', drop=False, inplace=False)

print(contestants_joined)

然后我就得到了

       (Contestant, Contestant) (Age, Age)                (From, From)  \
Season                                                                   
NaN                   Jim Lynch         63        Northglenn, Colorado   
NaN             Morgan McDevitt         21           Decatur, Illinois   
NaN              Brianna Varela         21         Edmonds, Washington   
NaN               Brooke Struck         25          Hood River, Oregon   
NaN               Blake Towsley         24               Dallas, Texas   
...                         ...        ...                         ...   
NaN               Soda Thompson         27  Lake Hopatcong, New Jersey   
NaN                 Tevin Davis         24          Richmond, Virginia   
NaN        Tiffany Nicole Ervin         33       Elizabeth, New Jersey   
NaN                  Tim Spicer         31            Atlanta, Georgia   
NaN                  Venus Vafa         24            Toronto, Ontario   

       (Tribe, Original) (Tribe, Switched) (Tribe, Merged)  \
Season                                                       
NaN                Nakúm               NaN             NaN   
NaN                Yaxhá               NaN             NaN   
NaN                Yaxhá               NaN             NaN   
NaN                Nakúm             Nakúm             NaN   
NaN                Nakúm             Yaxhá             NaN   
...                  ...               ...             ...   
NaN                 Nami               NaN             NaN   
NaN                 Nami               NaN             NaN   
NaN                 Yanu               NaN             NaN   
...
NaN                     NaN           NaN  
NaN                     NaN           NaN  

其中,它确实将索引设置为‘季节’列,但所有值都是NaN.

如有任何帮助,我们不胜感激.

推荐答案

我建议扁平化多索引框架(在列中只有一个索引级别).这样你就可以得到正确的索引,而没有NaN值:

import numpy as py
import pandas as pd

contestants = {}

for season in range(11, 47):
    wiki_url = f"https://en.wikipedia.org/wiki/Survivor_{season}"

    table = pd.read_html(wiki_url)[1]

    # flatten index
    table.columns = ["_".join(t) if isinstance(t, tuple) else t for t in table.columns]

    contestants[season] = table
    contestants[season]["SeasonNumber"] = season

contestants_joined = pd.concat(contestants.values()).set_index(
    "SeasonNumber", drop=False, inplace=False
)

print(contestants_joined)

打印:

                                                      Contestant_Contestant                                Age_Age                              From_From Tribe_Original Tribe_Switched Tribe_Merged                     Finish_Placement Finish_Day  SeasonNumber Tribe_Post-mutiny Tribe_First switch Tribe_Second switch                 Main game[a]_Finish Main game[a]_Day      Redemption Island_Finish Redemption Island_Day Tribe_Absorbed                         Name   Age                 Hometown    Original season                                               Survivor: Kaôh Rōng                                             Survivor: Kaôh Rōng.1  Edge of Extinction_Finish Edge of Extinction_Day                                                Contestant[a]_Contestant[a]               Main game[b]_Finish Main game[b]_Day Tribe_None
SeasonNumber                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
11                                                                Jim Lynch                                     63                   Northglenn, Colorado          Nakúm            NaN          NaN                        1st voted out      Day 3            11               NaN                NaN                 NaN                                 NaN              NaN                           NaN                   NaN            NaN                          NaN   NaN                      NaN                NaN                                                               NaN                                                               NaN                        NaN                    NaN                                                                        NaN                               NaN              NaN        NaN
11                                                          Morgan McDevitt                                     21                      Decatur, Illinois          Yaxhá            NaN          NaN                        2nd voted out      Day 6            11               NaN                NaN                 NaN                                 NaN              NaN                           NaN                   NaN            NaN                          NaN   NaN                      NaN                NaN                                                               NaN                                                               NaN                        NaN                    NaN                                                                        NaN                               NaN              NaN        NaN
11                                                           Brianna Varela                                     21                    Edmonds, Washington          Yaxhá            NaN          NaN                        3rd voted out      Day 8            11               NaN                NaN                 NaN                                 NaN              NaN                           NaN                   NaN            NaN                          NaN   NaN                      NaN                NaN                                                               NaN                                                               NaN                        NaN                    NaN                                                                        NaN                               NaN              NaN        NaN
11                                                            Brooke Struck                                     25                     Hood River, Oregon          Nakúm          Nakúm          NaN                        4th voted out     Day 11            11               NaN                NaN                 NaN                                 NaN              NaN                           NaN                   NaN            NaN                          NaN   NaN                      NaN                NaN                                                               NaN                                                               NaN                        NaN                    NaN                                                                        NaN                               NaN              NaN        NaN
11                                                            Blake Towsley                                     24                          Dallas, Texas          Nakúm          Yaxhá          NaN                        5th voted out     Day 14            11               NaN                NaN                 NaN                                 NaN              NaN                           NaN                   NaN            NaN                          NaN   NaN                      NaN                NaN                                                               NaN                                                               NaN                        NaN                    NaN                                                                        NaN                               NaN              NaN        NaN
11                                                        Margaret Bobonich                                     43                          Chardon, Ohio          Nakúm          Nakúm          NaN                        6th voted out     Day 15            11               NaN                NaN                 NaN                                 NaN              NaN                           NaN                   NaN            NaN                          NaN   NaN                      NaN                NaN                                                               NaN                                                               NaN                        NaN                    NaN                                                                        NaN                               NaN              NaN        NaN
11                                                           Brian Corridan                                     22                New York City, New York          Yaxhá          Yaxhá          NaN                        7th voted out     Day 15            11               NaN                NaN                 NaN                                 NaN              NaN                           NaN                   NaN            NaN                          NaN   NaN                      NaN                NaN                                                               NaN                                                               NaN                        NaN                    NaN                                                                        NaN                               NaN              NaN        NaN
11                                                               Amy O'Hara                                     39                  Revere, Massachusetts          Yaxhá          Yaxhá          NaN                        8th voted out     Day 18            11               NaN                NaN                 NaN                                 NaN              NaN                           NaN                   NaN            NaN                          NaN   NaN                      NaN                NaN                                                               NaN                                                               NaN                        NaN                    NaN                                                                        NaN                               NaN              NaN        NaN
11                                                        Brandon Bellinger                                     22                      Manhattan, Kansas          Nakúm          Yaxhá       Xhakúm                        9th voted out     Day 21            11               NaN                NaN                 NaN                                 NaN              NaN                           NaN                   NaN            NaN                          NaN   NaN                      NaN                NaN                                                               NaN                                                               NaN                        NaN                    NaN                                                                        NaN                               NaN              NaN        NaN
11                                                 Bobby Jon Drinkard Palau                                     28                          Troy, Alabama          Nakúm          Yaxhá       Xhakúm       10th voted out 1st jury member     Day 24            11               NaN                NaN                 NaN                                 NaN              NaN                           NaN                   NaN            NaN                          NaN   NaN                      NaN                NaN                                                               NaN                                                               NaN                        NaN                    NaN                                                                        NaN                               NaN              NaN        NaN
11                                                             Jamie Newton                                     24                       Douglas, Georgia          Yaxhá          Nakúm       Xhakúm       11th voted out 2nd jury member     Day 27            11               NaN                NaN                 NaN                                 NaN              NaN                           NaN                   NaN            NaN                          NaN   NaN                      NaN                NaN                                                               NaN                                                               NaN                        NaN                    NaN                                                                        NaN                               NaN              NaN        NaN
11                                                            Gary Hogeboom                                     46                  Grand Haven, Michigan          Yaxhá          Yaxhá       Xhakúm       12th voted out 3rd jury member     Day 30            11               NaN                NaN                 NaN                                 NaN              NaN                           NaN                   NaN            NaN                          NaN   NaN                      NaN                NaN                                                               NaN                                                               NaN                        NaN                    NaN                                                                        NaN                               NaN              NaN        NaN
11                                                            Judd Sergeant                                     34                 Ridgefield, New Jersey          Nakúm          Nakúm       Xhakúm       13th voted out 4th jury member     Day 33            11               NaN                NaN                 NaN                                 NaN              NaN                           NaN                   NaN            NaN                          NaN   NaN                      NaN                NaN                                                               NaN                                                               NaN                        NaN                    NaN                                                                        NaN                               NaN              NaN        NaN
11                                                               Cindy Hall                                     31                        Naples, Florida          Nakúm          Nakúm       Xhakúm       14th voted out 5th jury member     Day 36            11               NaN                NaN                 NaN                                 NaN              NaN                           NaN                   NaN            NaN                          NaN   NaN                      NaN                NaN                                                               NaN                                                               NaN                        NaN                    NaN                                                                        NaN                               NaN              NaN        NaN
11                                                            Lydia Morales                                     42                   Lakewood, Washington          Yaxhá          Nakúm       Xhakúm       15th voted out 6th jury member     Day 37            11               NaN                NaN                 NaN                                 NaN              NaN                           NaN                   NaN            NaN                          NaN   NaN                      NaN                NaN                                                               NaN                                                               NaN                        NaN                    NaN                                                                        NaN                               NaN              NaN        NaN
11                                                             Rafe Judkins                                     22               Pittsburgh, Pennsylvania          Yaxhá          Nakúm       Xhakúm       16th voted out 7th jury member     Day 38            11               NaN                NaN                 NaN                                 NaN              NaN                           NaN                   NaN            NaN                          NaN   NaN                      NaN                NaN                                                               NaN                                                               NaN                        NaN                    NaN                                                                        NaN                               NaN              NaN        NaN
11                                                 Stephenie LaGrossa Palau                                     25                 Toms River, New Jersey          Yaxhá          Nakúm       Xhakúm                            Runner-up     Day 39            11               NaN                NaN                 NaN                                 NaN              NaN                           NaN                   NaN            NaN                          NaN   NaN                      NaN                NaN                                                               NaN                                                               NaN                        NaN                    NaN                                                                        NaN                               NaN              NaN        NaN

...

Python相关问答推荐

使可滚动框架在tkinter环境中看起来自然

NP.round解算数据后NP.unique

ODE集成中如何终止solve_ivp的无限运行

如何设置视频语言时上传到YouTube与Python API客户端

如何从列表框中 Select 而不出错?

为什么np. exp(1000)给出溢出警告,而np. exp(—100000)没有给出下溢警告?

使用BeautifulSoup抓取所有链接

Python避免mypy在相互引用中从另一个类重定义类时失败

Gekko中基于时间的间隔约束

Flask运行时无法在Python中打印到控制台

Pandas—堆栈多索引头,但不包括第一列

Python pint将1/华氏度转换为1/摄氏度°°

在用于Python的Bokeh包中设置按钮的样式

使用嵌套对象字段的Qdrant过滤

Python将一个列值分割成多个列,并保持其余列相同

jsonschema日期格式

使用SQLAlchemy从多线程Python应用程序在postgr中插入多行的最佳方法是什么?'

为什么在不先将包作为模块导入的情况下相对导入不起作用

多个布尔条件的`jax.lax.cond`等效项

如何将ManyToManyfield用于Self类