首页 > 解决方案 > 分隔/拆分行值并形成单独的行

问题描述

数据的可重现代码:

import pandas as pd
dict = {"a": "[1,2,3,4]", "b": "[1,2,3,4]"}
dict = pd.DataFrame(list(dict.items()))

dict

    0   1
 0  a   [1,2,3,4]
 1  b   [1,2,3,4]

我想拆分/分隔“第 1 列”并为每个拆分值创建单独的行。

预期输出:

     0    1
  0  a    1
  1  a    2
  2  a    3
  3  a    4
  4  b    1
  5  b    2
  6  b    3
  7  b    4

我应该先删除括号然后拆分值吗?我真的不知道这样做。请问有什么可以帮助我解决这个问题的参考吗?

标签: pythondelimiterreshape

解决方案


基于该答案的逻辑:

s = d[1]\
    .apply(lambda x: pd.Series(eval(x)))\
    .stack()

s.index = s.index.droplevel(-1)
s.name = "split"
d.join(s).drop(1, axis=1)

推荐阅读