字符串到列



我的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

需要这方面的帮助。

我正在尝试将其转换为字典,然后对字典进行排序。 发布后,我想做一个数据透视表。不确定它是否会做,但任何帮助或更好的方法将不胜感激。

使用嵌套列表推导式和双splitby,:字典列表并传递给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.extractallunstack

(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

相关内容

  • 没有找到相关文章