我的df中有一个字符串列。
col
a: 1, b: 2, c: 3
b: 1, c: 3, a: 4
c: 2, b: 4, a: 3
我希望将其转换为多列,如下所示:
a b c
1 2 3
4 1 3
3 4 2
需要这方面的帮助。
我正在尝试将其转换为字典,然后对字典进行排序。 发布后,我想做一个数据透视表。不确定它是否会做,但任何帮助或更好的方法将不胜感激。
使用嵌套列表推导式和双split
by,
和:
字典列表并传递给DataFrame
构造函数:
df = pd.DataFrame([dict(y.split(': ') for y in x.split(', ')) for x in df['col']],
index=df.index)
print (df)
a b c
0 1 2 3
1 4 1 3
2 3 4 2
您可以使用str.extractall
和unstack
:
(df['col'].str.extractall('(w+):s*([^,]+)')
.set_index(0, append=True).droplevel('match')[1]
.unstack(0)
)
输出:
a b c
0 1 2 3
1 4 1 3
2 3 4 2