获取pandas数据框中的字符串数据列并拆分为单独的列

时间:2016-09-15 06:05:07

标签: python pandas

我从CSV中读取的数据中有一个pandas数据帧。一列用于组的名称,而另一列包含一个字符串(看起来像列表),如下所示:

Group      |  Followers
------------------------------------------
biebers    |  u'user1', u'user2', u'user3'
catladies  |  u'user4', u'user5'
bkworms    |  u'user6', u'user7'

我想尝试将"追随者"中的字符串分开。列,并为每个用户创建一个单独的数据框,以及显示他们所在的组的列。因此,对于此示例,我想获得以下内容:

User       |     Group
--------------------------------
user1      |     biebers
user2      |     biebers
user3      |     biebers
user4      |     catladies
user5      |     catladies
user6      |     bkworms
user7      |     bkworms

有人建议采用最佳方法吗?这是一个截图:

enter image description here

1 个答案:

答案 0 :(得分:2)

df.Followers = df.Followers.str.replace(r"u'([^']*)'", r'\1')

df.set_index('Group').Followers.str.split(r',\s*', expand=True) \
  .stack().rename('User').reset_index('Group').set_index('User')

enter image description here

User保留为列。

df.Followers = df.Followers.str.replace(r"u'([^']*)'", r'\1')

df.set_index('Group').Followers.str.split(r',\s*', expand=True) \
  .stack().rename('User').reset_index('Group') \
  .reset_index(drop=True)[['User', 'Group']]