Python中的列表操作 - 突破和转置

时间:2017-09-18 20:36:03

标签: python-3.x pandas

尽管本网站上的列表问题数量很少,但我仍然无法做到这一点。

列表中的第一个元素是另一个列表。试图打破它,然后垂直填充它。

SyntaxFactory.BaseList(...)

1 个答案:

答案 0 :(得分:1)

使用此:

have = [[['v', 'e', 'r', 't'], 'A', 'B', 'C', 'D'],
    [['v', 'e', 'r', 't'], 'E', 'F', 'G', 'H']]
df = pd.DataFrame(have)

(df[0].apply(pd.Series).stack().reset_index(level=1, drop=True)
     .to_frame()
     .merge(df, left_index=True, right_index=True,suffixes=('','_r'))
     .drop('0_r',axis=1).values.tolist())

输出:

[['v', 'A', 'B', 'C', 'D'],
 ['e', 'A', 'B', 'C', 'D'],
 ['r', 'A', 'B', 'C', 'D'],
 ['t', 'A', 'B', 'C', 'D'],
 ['v', 'E', 'F', 'G', 'H'],
 ['e', 'E', 'F', 'G', 'H'],
 ['r', 'E', 'F', 'G', 'H'],
 ['t', 'E', 'F', 'G', 'H']]