Извлечение элементов из списка списков - Python Pandas - PullRequest
0 голосов
/ 15 октября 2018

У меня есть следующий кадр данных pandas только с одним столбцом:

          column_name
0   cc_call_center_sk
1   cc_call_center_id
2   cc_rec_start_date
3     cc_rec_end_date

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

my_string = ['cc_call_center_sk', 'cc_call_center_id', 'cc_rec_start_date', 
'cc_rec_end_date']

Я попытался сделать это с помощью следующего кода:

my_list = column_names.values.tolist()

Однако вывод - это список, и он не соответствует желаемому:

[['cc_call_center_sk'], ['cc_call_center_id'], ['cc_rec_start_date'], ['cc_rec_end_date']]

Ответы [ 3 ]

0 голосов
/ 15 октября 2018

Вы можете использовать метод tolist в серии 'column_name'.Обратите внимание, что my_string - это список строк , а не строка.Указанное вами имя не подходит.

>>> import pandas as pd
>>> df = pd.DataFrame(['cc_call_center_sk', 'cc_call_center_id', 'cc_rec_start_date', 'cc_rec_end_date'],
...                   columns=['column_name'])
>>> df
         column_name
0  cc_call_center_sk
1  cc_call_center_id
2  cc_rec_start_date
3    cc_rec_end_date
>>>
>>> df['column_name'].tolist()
['cc_call_center_sk', 'cc_call_center_id', 'cc_rec_start_date', 'cc_rec_end_date']

Если вы предпочитаете точечную запись, следующий код делает то же самое.

>>> df.column_name.tolist()
['cc_call_center_sk', 'cc_call_center_id', 'cc_rec_start_date', 'cc_rec_end_date']
0 голосов
/ 15 октября 2018

Допустим, у вас есть фрейм данных с именем df, который выглядит следующим образом:

df
    column_name
0   cc_call_center_sk
1   cc_call_center_id
2   cc_rec_start_date
3   cc_rec_end_date

затем:

my_string = df.column_name.values.tolist()

или:

my_string = df['column_name'].values.tolist()

дастВы результат, который вы хотите.Вот результат, когда вы печатаете my_string

['cc_call_center_sk',
'cc_call_center_id',
'cc_rec_start_date',
'cc_rec_end_date']

Что вы пытаетесь сделать, это:

my_strings = df.values.tolist()

Это даст вам список списков с количеством списков ввнешний список равен количеству наблюдений в вашем фрейме данных.Каждый список будет содержать всю информацию об особенностях, относящихся к одному наблюдению.

Надеюсь, я объяснил вам это ясно.Спасибо

0 голосов
/ 15 октября 2018

df.names.tolist() генерирует ожидаемый результат:

>>> df.name.tolist()
['cc_call_center_sk', 'cc_call_center_id', 'cc_rec_start_date', 'cc_rec_end_date']

Например:

>>> df=pd.DataFrame([['cc_call_center_sk'], ['cc_call_center_id'], ['cc_rec_start_date'], ['cc_rec_end_date']], columns=['names'])
>>> df
               names
0  cc_call_center_sk
1  cc_call_center_id
2  cc_rec_start_date
3    cc_rec_end_date
>>> df = pd.DataFrame([['cc_call_center_sk'], ['cc_call_center_id'], ['cc_rec_start_date'], ['cc_rec_end_date']], columns=['names'])
>>> df.names.tolist()
['cc_call_center_sk', 'cc_call_center_id', 'cc_rec_start_date', 'cc_rec_end_date']

Вы уверены, что не «группируете» значения или не выполняете другую «предварительную обработку»до получения df.names?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...