Трансформируйте Dataframe 6x3 в специальный массив 9x2, выберите элемент dataframe для хранения в массиве - PullRequest
0 голосов
/ 28 июня 2019
from pandas import DataFrame
import numpy as np

Data={'First':[1,2,3,4,5,5],'Second':[6,7,8,9,10,4],'Third':[0,1,0,1,0,100]}
df=DataFrame(Data,columns=['First','Second','Third'])

Здесь приведен пример кадра данных.Результат, который я хочу сохранить:

array([[  1,   4],
       [  6,   9],
       [  0,   1],
       [  2,   5],
       [  7,  10],
       [  1,   0],
       [  3,   5],
       [  8,   4],
       [  0, 100]])

Я бы хотел выбрать количество строк и столбцов массива, используя, например, цикл for.Сценарий сможет прочитать каждый элемент данных в течение 2 или 3 строк, сохранить их в столбце массива, затем перезапустить с последнего элемента +1 в кадре данных и сохранить во втором столбце массива.

Спасибо

Ответы [ 2 ]

1 голос
/ 28 июня 2019

Вы можете просто изменить форму и транспонировать значения:

np.transpose(df.values.reshape(2,9))

или с более приятным синтаксисом (спасибо @AndyL. За уведомление):

df.values.reshape(2,-1).T

дает:

array([[  1,   4],
       [  6,   9],
       [  0,   1],
       [  2,   5],
       [  7,  10],
       [  1,   0],
       [  3,   5],
       [  8,   4],
       [  0, 100]], dtype=int64)
1 голос
/ 28 июня 2019

разбивая массив на две части, используя np.flatten для преобразования двумерных массивов в 1D, np.newaxis для увеличения размера и затем np.hstack для их горизонтального размещения

np.hstack((df[:3].values.flatten()[np.newaxis].T,df[3:].values.flatten()[np.newaxis].T))

выход

array([[  1,   4],
       [  6,   9],
       [  0,   1],
       [  2,   5],
       [  7,  10],
       [  1,   0],
       [  3,   5],
       [  8,   4],
       [  0, 100]], dtype=int64)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...