可以向大熊猫系列请求k后续项目的进展吗?

时间:2017-07-12 23:22:49

标签: pandas

我有一个像这样组织的数据集(在熊猫系列中):

s: AAAAABBBBBCCCCCAAAAABBBBBCCCCCAAAAABBBBBCCCCC....

n(= 3)以k(= 5)个样本块组织的数据流。

是否有高效的方法在pandas中使用步幅或某些东西将数据解压缩为n系列?

a = # All the A's
b = # All the B'a
c = # All the C's

理想情况下,使用原始索引。 步幅似乎只是设置为每第n次选择,而不是每隔m次选择k。

1 个答案:

答案 0 :(得分:1)

考虑系列s

s = pd.Series(list('AAAAABBBBBCCCCCAAAAABBBBBCCCCCAAAAABBBBBCCCCC'))

重塑基础数组和切片

s.values.reshape(-1, 5)[::3].ravel()

['A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A']


s.values.reshape(-1, 5)[1::3].ravel()

['B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B']


s.values.reshape(-1, 5)[2::3].ravel()

['C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C']

您可以使用

更进一步
v = s.values
v.reshape(-1, 3, 5).transpose(1, 0, 2).reshape(3, -1)

[['A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A']
 ['B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B']
 ['C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C']]