熊猫:如何将具有多个值的单元格转换为多行?

Use*_*YmY 6 python row converter dataframe pandas

我有一个像这样的DataFrame:

Name asn  count
Org1 asn1,asn2 1
org2 asn3      2
org3 asn4,asn5 5
Run Code Online (Sandbox Code Playgroud)

我想将我的DataFrame转换为如下所示:

Name asn  count
Org1 asn1 1
Org1 asn2 1 
org2 asn3 2
org3 asn4 5
Org3 asn5 5
Run Code Online (Sandbox Code Playgroud)

我知道使用以下代码来完成两列,但我不知道我怎么能这样做三个.

df2 = df.asn.str.split(',').apply(pd.Series)          
df2.index = df.Name                                   
df2 = df2.stack().reset_index('Name') 
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

Ale*_*ley 7

从同样的想法继续,您可以设置MultiIndex df2然后堆叠.例如:

>>> df2 = df.asn.str.split(',').apply(pd.Series)
>>> df2.index = df.set_index(['Name', 'count']).index
>>> df2.stack().reset_index(['Name', 'count'])
   Name  count     0
0  Org1      1  asn1
1  Org1      1  asn2
0  org2      2  asn3
0  org3      5  asn4
1  org3      5  asn5
Run Code Online (Sandbox Code Playgroud)

然后,您可以重命名该列并设置您选择的索引.