Как я могу сгруппировать элемент и перечислить их все вместе в Python Pandas? - PullRequest
0 голосов
/ 10 июня 2019

У меня есть что-то вроде этого:

time 0   1   2   3   4   5
Val1 32  12  56  45  3   67
Val2 60  34  2   5   13  90

Я хочу список подмассива, состоящего из 3 значений, таких как:

dataset=   [
[["32", "12", "56"], ["45", "3", "67"]],
[["60", "34", "2"], ["5", "13", "90"]]
 ]

Как я могу это сделать? Эта строка дает мне только список строк

df.values.tolist()

Ответы [ 3 ]

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

IIUC

df=df.set_index('time')
df.groupby(np.arange(df.shape[1])//3,axis=1).agg(lambda x : x.values.tolist()).values.tolist()
[[[32, 12, 56], [45, 3, 67]], [[60, 34, 2], [5, 13, 90]]]
0 голосов
/ 10 июня 2019

Сначала преобразуйте весь DataFrame в список, затем разделите каждый из этих списков на 2 отдельных списка.

df2=df.values.tolist() #Convert the DataFrame to List
lst_split=[]
for lst in df2:
    temp1=lst[:len(lst)//2] #Create First Half of the split
    temp2=lst[len(lst)//2:] #Create Second Half of the split
    lst_split.append(temp1)
    lst_split.append(temp2) #Appending to the Final list
0 голосов
/ 10 июня 2019
time 0   1   2   3   4   5 

Val1 32  12  56  45  3   67

Val2 60  34  2   5   13  90

import pandas as pd

data= [[0,32,60],[1,12,34],[2,56,2],[3,45,5],[4,3,13],[5,67,90]]

df = pd.DataFrame(data, columns = ["time","val1","val2"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...