2015-08-14 3 views
0

У меня есть серия pandas, и я хотел бы скрывать все строки моей серии в один список. У меня есть:преобразование строк одного столбца dataFrame в один список в python

list1=Series([89.34,88.52,104.19,186.84,198.15,208.88]). Then I have a function which i call: 
func(list1) 
def func(list1): 
    list1=list1.values.tolist() 
    print(list1) 

напечатанный результат:

[[89.34], [88.52], [104.19], [186.84], [198.15], [208.88]] 

, но я хотел бы иметь: [89.34,88.52,104.19,186.84,198.15,208.88]

любая помощь. Я использую python 2.7

+0

Вы не должны использовать 'list' в качестве имени переменной потому, что он глобально доступной структуры данных. – Ray

+0

Я не мог воспроизвести проблему, которая у вас была. Не могли бы вы добавить версию python, версию pandas и какую ОС вы используете? – tmrlvi

+1

Да, я не вижу, как этот код даст этот результат. Если у вас есть * DataFrame *, а затем вызывается '.values.tolist()', вы получите список списков, но если у вас есть серия, вы должны просто получить список. – DSM

ответ

1

Самый простой способ - получить доступ к объекту values объекта Series, как в вашем примере.

> from pandas import Series 
> a_series = Series([89.34,88.52,104.19,186.84,198.15,208.88]) 
> print(a_series.values.tolist()) 
[89.34, 88.52, 104.19, 186.84, 198.15, 208.88] 

Доступ к более чем одного элемента в списке, в то же время:

> counter = 0 
> a_list = a_series.values.tolist() 
> while(counter < len(a_list)): 
.. if((counter+1) < len(a_list)): 
..  print(a_list[counter] == a_list[counter+1]) 
.. counter+=1 
False 
False 
False 
False 
False 
+0

Спасибо Ray, проблема в том, что я хотел бы перебирать этот список, начиная со второго индекса; это ваш elem + 1 и сравните его с elem – user3841581

+0

Тогда вам не нужен список. Вы можете сделать более эффективно с объектами панды. Используйте '' 'b_series = a_series.shift (-1)' '' для создания серий с одинаковыми индексами, только данные сдвигаются. Тогда вы можете использовать, например, '' 'a_series - b_series''', чтобы получить разницу – tmrlvi

+0

Я добавил способ сравнения элементов с предыдущими элементами. Если я ошибаюсь, пожалуйста, дайте мне знать. Любые логические требования (например, сравнение elem + 1 to elem) должны быть в вашем вопросе, поэтому нет путаницы. – Ray

Смежные вопросы