вызвать локальную переменную внутри цикла в пандах - PullRequest
0 голосов
/ 25 мая 2018

Итак, я пытаюсь получить каждое уникальное значение категории Nombre Capitulo моего фрейма данных для каждого Nombre Partida (Nombre Capitulo - это подкатегория Nombre Partida).Мой подход состоял в том, чтобы создать локальные кадры данных для каждой «Nombre Partida», а затем извлечь уникальные значения «Nombre Capitulo» для каждого из них.Итак, мой вопрос двоякий: 1. Есть ли более питонский способ сделать это?2. Если нет, как я могу назвать мои недавно созданные локальные переменные?Я пробовал это, но не работает:

Partidas=data1_anio['Nombre Partida'].unique()
for p in Partidas:

    locals()['%s' % p]=data1_anio.loc[data1_anio['Nombre Partida']==p]

    globals()['cap_%s' % p]= ['%s' % p]['Nombre Capitulo'].unique()

Локальные переменные работают, но вызов их вызывает:

TypeError: list indices must be integers or slices, not str

Есть идеи?Заранее спасибо и извините за испанские имена в переменных, надеюсь, это понятно, Хуан

1 Ответ

0 голосов
/ 25 мая 2018

Если я правильно понимаю, я считаю, что вы можете использовать groupby здесь.Трудно протестировать, не видя пример данных, но я думаю, что это должно сделать это:

data1_anio.groupby('Nombre Partida')['Nombre Capitulo'].unique()

Пример:

data1_anio = pd.DataFrame({'Nombre Partida':['a', 'a', 'a', 'b', 'b', 'b'],
                           'Nombre Capitulo':['random1', 'random1', 'random2',
                                              'random3', 'random4', 'random4']})

>>> data1_anio
   Nombre Partida Nombre Capitulo
0              a         random1
1              a         random1
2              a         random2
3              b         random3
4              b         random4
5              b         random4

Запуск groupby возвращаетСерии всех уникальных значений Nombre Capitulo для каждого Nombre Partida:

>>> data1_anio.groupby('Nombre Partida')['Nombre Capitulo'].unique()
Nombre Partida
a    [random1, random2]
b    [random3, random4]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...