Разделить строки данных из одного столбца по индексу строк в новые столбцы - PullRequest
0 голосов
/ 21 мая 2019

У меня есть пандас dataframe y_all с 1 столбцом и 13400 строками.Я хочу разделить 13400 строк на 10 столбцов (y0-y9) по 1340 строк в каждом, используя индекс строк.Я пробовал что-то подобное, но я хочу самый короткий и чистый код из возможных.

y0, y1, y2, y3, y4, y5, y6, y7, y8, y9 = y_all[:1340], y_all[1340:2680].reset_index(drop=True),
                                             y_all[2680:4020].reset_index(drop=True), y_all[4020:5360].reset_index(drop=True),
                                             y_all[5360:6700].reset_index(drop=True), y_all[6700:8040].reset_index(drop=True),
                                             y_all[8040:9380].reset_index(drop=True), y_all[9380:10720].reset_index(drop=True),
                                             y_all[10720:12060].reset_index(drop=True), y_all[12060:].reset_index(drop=True)

_y_all = pd.concat([y0,y1,y2,y3,y4,y5,y6,y7,y8,y9],axis=1)

Пожалуйста, сообщите.

Приветствия

1 Ответ

0 голосов
/ 21 мая 2019

Вот одна строка, которая будет производить то, что вы хотите.Вы должны заменить 'your_column' именем столбца, который у вас есть в y_all.Теория состоит в том, чтобы объединить несколько рядов панд, сгенерированных списком , где итерация использует функцию np.array_split () , которая разделит ваш единственный столбец на 10 массивов одинакового размера.

_y_all = pd.concat([pd.Series(j, name='y' + str(i), index=range(0,1340)) for i,j in enumerate(np.array_split(y_all['your_column'].values, 10))], axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...