编程语言
首页 > 编程语言> > Python数据操作:从一列拆分数据以在同一数据帧中生成更多行

Python数据操作:从一列拆分数据以在同一数据帧中生成更多行

作者:互联网

所以我的意见是:

   Col1         Col2      Col3 Col4
0   123  abc,def,ghi  Country1  XXX
1   456      pqr,stu  Country2   XX
2   789          xyz  Country2   YY

我希望我的输出为:

   Col1      Col2    Col3   Col4
0    abc     123  Country1    XXX
1    def     123  Country1    XXX
2    ghi     123  Country1    XXX
3    pqr     456  Country2     XX
4    stu     456  Country2     XX
5    xyz     789  Country2     YY

什么是最pythonic的方式来做这个?谢谢你!

解决方法:

您可以使用str.splitstackjoin系列创建为原始DataFrame:

print (df.Col2
      .str
      .split(',',expand=True)
      .stack()
      .reset_index(drop=True, level=1)
      .rename('Col2'))

0    abc
0    def
0    ghi
1    pqr
1    stu
2    xyz
Name: Col2, dtype: object


print (df.drop('Col2', axis=1)
             .join
             (
             df.Col2
             .str
             .split(',',expand=True)
             .stack()
             .reset_index(drop=True, level=1)
             .rename('Col2')           
             ))

   Col1      Col3 Col4 Col2
0   123  Country1  XXX  abc
0   123  Country1  XXX  def
0   123  Country1  XXX  ghi
1   456  Country2   XX  pqr
1   456  Country2   XX  stu
2   789  Country2   YY  xyz

标签:data-manipulation,python,pandas,dataframe,multiple-columns
来源: https://codeday.me/bug/20190823/1702637.html