如何用从另一个获得的值创建一个新的`DataFrame`?

时间:2016-01-27 20:28:13

标签: python pandas

我有一个dataFrame df1:

  |Company Name|Contact| Representatives  |
  | XYZ-Corp   |Adam   | Mark, John, Stacy |

我想创建一个新的dataFrame df2,如下所示:

  | Company Name | Contact  |
  | XYZ-Corp     | Adam     |
  | XYZ-Corp     | Mark     |
  | XYZ-Corp     | John     |
  | XYZ-Corp     | Stacy    |

我该怎么做? 我想从代表列中拆分值并将其添加为新行。

我可以使用double for循环,一个遍历所有行,另一个迭代代表名称并添加到新的dataFrame。有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

df.set_index('Company Name', inplace=True)
df = pd.concat([df.Contact, df.loc[:,'Representatives'].str.split(',', expand=True).stack().reset_index(-1, drop=True)]).reset_index()
df.rename(columns={0: 'Contact'}, inplace=True)

   Company Name  Contact
0   XYZ-Corp     Adam   
1   XYZ-Corp        Mark
2   XYZ-Corp        John
3   XYZ-Corp      Stacy