Преобразовать список словарей в рамках dataframe в список строк - pandas - PullRequest
0 голосов
/ 28 августа 2018

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

С учетом столбца данных со значениями, такими как

[{'id': 5, 'value': 'string1'}, {'id': 3, 'value': 'string3'}, {'id': 35, 'value': 'string2' }]

Как мне преобразовать это в список строк, таких как

['string1', 'string2', 'string3']

Я попытался использовать два для таких циклов, как,

for x in df:
    for y in x:
       y = y['value']

И, похоже, это работает, когда я добавляю отпечаток (y) после операции, но изменения, похоже, не сохраняются.

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Вы можете использовать tolist функцию pandas DataFrame

df['value'].tolist()

Это даст вам ожидаемый результат для

['string1', 'string3', 'string2']
0 голосов
/ 28 августа 2018

Добавить значения в списки:

L = []
for x in df['col']:
    L1 = []
    for y in x:
       L1.append(y['value'])
    L.append(L1)

df['new'] = L

Или список понимания:

df['new'] = [[y['value'] for y in x] for x in df['col']]

Sample

df = pd.DataFrame({'col':[[{'id': 5, 'value': 'string1'},{'id': 3, 'value': 'string3'},{'id': 35, 'value': 'string2'}],
                          [{'id': 5, 'value': 'string1'},{'id': 3, 'value': 'string3'}]]})

df['new'] = [[y['value'] for y in x] for x in df['col']]
print (df)

                                                 col  \
0  [{'id': 5, 'value': 'string1'}, {'id': 3, 'val...   
1  [{'id': 5, 'value': 'string1'}, {'id': 3, 'val...   

                           new  
0  [string1, string3, string2]  
1           [string1, string3]  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...