我有一个Pandas数据框架,目前看起来像这样。
df = pd.DataFrame({'Film' : ['James Bond: Spectre', 'Avengers: Endgame'],
'Year' : [2015, 2019],
'Director(s)': ['Sam Mendes', 'Anthony Russo, Joe Russo'],
'Actor(s)': ["Daniel Craig, Cristoph Waltz", "Robert Downey Jr., Chris Evans, Scarlett Johannson"]})
Film | Year | Director(s) | Actor(s)
----------------------|------|--------------------|-----------------------
James Bond: Spectre | 2015 | Sam Mendes | Daniel Craig,
| | | Christoph Waltz
----------------------|------|--------------------|-----------------------
Avengers: Endgame | 2019 | Anthony Russo, Joe | Robert Downey Jr.,
| | Russo | Chris Evans, Scarlett
| | | Johansson
我想通过每个字符串中的逗号将actor列和导演列分割开来,使它们成为多层列,每个新条目都占据一个单独的单元格,如下图所示。
Film | Year | Director(s) | Actor(s)
----------------------|------|-------------------|----------------------
James Bond: Spectre | 2015 | Sam Mendes | Daniel Craig
| | |----------------------
| | | Christoph Waltz
----------------------|------|-------------------|----------------------
Avengers: Endgame | 2019 | Anthony Russo | Robert Downey Jr.
| | |----------------------
| |-------------------| Chris Evans
| | Joe Russo |----------------------
| | | Scarlett Johansson
我的优先级是导演列和演员列分别包含每个值,但两列的多层索引没有联系--Anthony Russo和Robert Downey Jr.除了与同一部电影有联系外,没有内在联系。
我对Python和Pandas相当陌生,所以我明白这可能不是多索引的工作方式。如果有更有效的组织数据的方法,我会很高兴听到它!
我想Pandas的explode()函数可能会解决你所需要的问题。请看这里的一个例子 https:/cmdlinetips.com201907pandas-0-25-0-is-here-what-new-name-aggregation-explod-and-sparse-dataframe。