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)
让我们做一个十字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)