我有一个像这样的 DataFrame:
Name asn
Org1 asn1,asn2
org2 asn3
org3 asn4,asn5
我想将我的 DataFrame 转换成如下所示:
Name asn
Org1 asn1
Org1 asn2
org2 asn3
org3 asn4
Org3 asn5
有人知道我该怎么做吗?
最佳答案
假设您的起始 DataFrame 名为 df
,您可以这样写:
>>> df2 = df.asn.str.split(',').apply(pd.Series) # break df.asn into columns
>>> df2.index = df.Name # set the index as df.Name
>>> df2 = df2.stack().reset_index('Name') # stack and reset_index
>>> df2
Name 0
0 Org1 asn1
1 Org1 asn2
0 org2 asn3
0 org3 asn4
1 org3 asn5
剩下要做的就是重命名该列:
df2.rename(columns={0: 'asn'}, inplace=True)
根据您的下一步行动,您可能还想设置一个更有用的索引。
关于python - Pandas :如何将具有多个值的单元格转换为多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29589977/