在熊猫中按矢量分割数据框

时间:2018-10-04 10:35:03

标签: python pandas dataframe split

我有一个具有500列和x行的数据框。现在,我有一个向量t_1和一个向量t_2。向量t_1表示事件的开始,并且可以包含1个或多个值,而t_2是事件的结束。它们都指示数据框中行的位置。

示例:

 t1=[4202 6453]
 t2=[6203 6492]

我现在想将数据框拆分为多个部分,并将其保存为两个不同的数据框。第4202至6203行是数据帧1,第6453至6492行是数据帧2。 这将是整个数据框:

      A   B   C   D
1     5   2   3   4 
..    .   .   .   .
4202  3   4   2   1
4203  2   1   2   2
..    .   .   .   .
6203  1   2   3   1
..    .   .   .   .
6453  5   1   4   3
..    .   .   .   .
6492  1   2   3   4

,这应该是输出: 数据框1:

      A   B   C   D
4202  3   4   2   1
..    .   .   .   .
6203  1   2   3   1

和数据框2:

      A   B   C   D
6453  5   1   4   3
..    .   .   .   .
6492  1   2   3   4

谢谢你, R

1 个答案:

答案 0 :(得分:1)

我相信您需要list comprehensionloc的{​​{1}}和zip列表:

DataFrame

示例:

t1=[4202, 6453]
t2=[6203, 6492]

dfs = [df.loc[i:j] for i, j in zip(t1, t2)]

print (dfs[0])
print (dfs[1])

np.random.seed(142)

df = pd.DataFrame({'column':np.random.rand(8)})
print (df)
     column
0  0.902062
1  0.557808
2  0.655985
3  0.832471
4  0.199884
5  0.127254
6  0.771439
7  0.432289