所以,我想要做的就是获得该类别的每一个独特价值' Nombre Capitulo'我的数据框架,对于每一个Nombre Partida' (' Nombre Capitulo'是Nombre Partida'的子类别)。我的方法是为每个Nombre Partida'创建本地数据帧。然后提取Nombre Capitulo' Nombre Capitulo的独特价值。对于他们每个人。 所以,我的问题是双重的: 1.有更多的Pythonic方法吗? 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
有什么想法吗? 在此先感谢,并抱歉变量中的西班牙语名称,希望它是可以理解的, 涓
答案 0 :(得分:0)
如果我理解正确,我相信您可以在此处使用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]