首页 > 解决方案 > 基于分隔符的python中的位置拆分数据帧

问题描述

我有一个这样的数据框:

df=
users|userids
user1|1
user3|3
user1,user2|1,2
user3,user4|3,4
user1,user3|1,3
user5,user6,user2|5,6,2
user11,user12,user13,user14,user15|11,12,13,14,15

现在我希望将数据框拆分如下:

df_modified=
user|userid
user1|1
user2|2
user3|3
user4|4
user5|5
user6|6
user11|11
user12|12
user13|13
user14|14
user15|15

我努力了

df_modified=df.pivot(columns='users',values='userids')

不起作用。实际上 df 中的值是字符串类型

标签: pythonpandasdataframe

解决方案


让我们使用.str.split分隔符周围的列拆分字符串,,然后将拆分的字符串np.hstack水平堆叠在列中,最后从这些堆叠的列创建新的数据框:

df_mod = pd.DataFrame({'users': np.hstack(df['users'].str.split(',')),
                       'userids': np.hstack(df['userids'].str.split(','))})\
           .drop_duplicates('users', ignore_index=True)

     users userids
0    user1       1
1    user2       2
2    user3       3
3    user4       4
4    user5       5
5    user6       6
6   user11      11
7   user12      12
8   user13      13
9   user14      14
10  user15      15

推荐阅读