Pandas 我可以复制行并添加包含列表值的列吗?

Chr*_*ber 4 python dataframe pandas

我有一个像这样的数据框:

    ID value  repeat  ratio
  0 0  IDx10     6       0.5   
  1 1  IDx11     7       1.5   
  2 2  IDx12     8       2.5   
Run Code Online (Sandbox Code Playgroud)

我有一个这样的列表: l = [1,2]

我想要做的是将每一行复制列表长度的次数,并在每个新行中放入列表的每个值。

并得到这样的数据框:

    ID value  repeat  ratio  value
  0  0  IDx10  6       0.5    1
  1  0  IDx10  6       0.5    2
  2  1  IDx11  7       1.5    1 
  3  1  IDx11  7       1.5    2  
  4  2  IDx12  8       2.5    1  
  5  2  IDx12  8       2.5    2 
Run Code Online (Sandbox Code Playgroud)

moz*_*way 6

让我们做一个十字merge

out = df.merge(pd.Series(l, name='value2'), how='cross')
Run Code Online (Sandbox Code Playgroud)

输出:

   ID  value  repeat  ratio  value2
0   0  IDx12       6    0.5       1
1   0  IDx12       6    0.5       2
2   0  IDx12       6    0.5       3
3   1  IDx12       7    1.5       1
4   1  IDx12       7    1.5       2
5   1  IDx12       7    1.5       3
6   2  IDx12       8    2.5       1
7   2  IDx12       8    2.5       2
8   2  IDx12       8    2.5       3
Run Code Online (Sandbox Code Playgroud)