如何从熊猫数据框中列出成对的连续行?

时间:2018-08-15 20:44:14

标签: python pandas numpy

说我有一个numpy数组df的数组,我想列出连续的行对吗?我该怎么办?

我只知道如何一次列出每一行并将它们组合成这样的列表:z=[x for x in df]。然后我会做[np.vstack(z[i],z[i+1]) for i in range(len(z))]

我只是想知道是否有Python方式可以做到这一点。

例如我的df

array([[1., 1., 1., 0., 0., 0., 1., 0., 1.],
       [0., 2., 0., 0., 6., 0., 0., 2., 0.],
       [0., 2., 0., 0., 6., 0., 0., 2., 0.],
       [0., 3., 4., 9., 1., 2., 2., 1., 8.],
       [0., 0., 5., 0., 0., 0., 5., 9., 0.]])

我想一次返回成对的连续数组。

***更新

好的,现在我要返回一个数据列,其中的列是 (该行的前六个条目,第8个条目,第7个条目,第9个条目和下一行的前六个条目)。

当我做pd.DataFrame([[np.array([df1[1,:,:][j][:6],df1[1,:,:][j][7],df1[1,:,:][j][6],df1[1,:,:][j][8],df1[1,:,:][j+1][:6]])] for j in range(len(df1[1,:,:])-1)])时,看起来很好,我得到了

                                                    0
0   [[1.0, 1.0, 1.0, 0.0, 0.0, 0.0], 0.0, 1.0, 1.0...
1   [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 0.0, 0.0, 0.0...
2   [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 0.0, 0.0, 0.0...
3   [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 0.0, 0.0, 0.0...
4   [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 0.0, 0.0, 0.0...

但是,当我这样做

pd.DataFrame([[np.array([df1[1,:,:][j][:6],df1[1,:,:][j][7],df1[1,:,:][j][6],df1[1,:,:][j][8],df1[1,:,:][j+1][:6]])] for j in range(len(df1[1,:,:])-1)],columns=['s','a','r','absorb','ns'])(唯一的区别是我现在提供列名),但出现错误

AssertionError: 5 columns passed, passed data had 1 columns.

我该如何解决?谢谢。

0 个答案:

没有答案