создать список pd.Series из панды DataFrame - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть DataFrame с большим количеством столбцов и список имен столбцов, которые я хочу передать алгоритму.Алгоритм требует, чтобы я передавал в аргументе не кадр данных, а список, в котором каждый элемент является одним из моих pd.Series столбцов.

Я думаю, что на этот вопрос уже можно было ответить, но я не могу найти ... Еслиесть функция или метод для достижения этого преобразования data.Frame => список pd.Series ?

Некоторый код для отображения желаемого результата с 2 столбцами, но мой вариант использования, если с десяткамиих, поэтому я не могу написать это вручную:

mydf = pd.DataFrame.from_dict({'a': {0: 1, 1: 2}, 'b': {0: 3, 1: 3}, 'c': {0: 10, 1: 3}})
my_list_of_columns=["a", "b"]
desired_output = [mydf.a, mydf.b]

Спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Как то так?

import pandas as pd

mydf = pd.DataFrame.from_dict({'a': {0: 1, 1: 2}, 'b': {0: 3, 1: 3}, 'c': {0: 10, 1: 3}})

desired_output = []
l = list(mydf)

for i in l:
    desired_output.append(list(eval('mydf.' + i)))


print(desired_output)
0 голосов
/ 08 февраля 2019

Использовать понимание списка:

desired_output = [mydf[x] for x in my_list_of_columns]
print (desired_output)
[0    1
1    2
Name: a, dtype: int64, 0    3
1    3
Name: b, dtype: int64]

Или преобразовать в to_dict с помощью to_dict(orient='series') и получить значения dict, но порядок следует изменить в python under 3.6:

desired_output = list(mydf[my_list_of_columns].to_dict(orient='series').values())
...