我一直在研究一个项目,我陷入了一种情况,我需要通过过滤来自另一个数据帧的字符串列表的值来从字符串列表创建多个数据帧,该数据帧的列包含列表中的相同值。我正在编写代码如下:
df = pd.DataFrame({'A': range(1, 5), 'B': np.random.randn(4), 'C':['A',A','B','C']}
list = df.C.unique()
list = list.tolist()
for r in list:
exec('df_{}=df[df.C=={}]'.format(r))
这一直在抛出一个错误,说“元组索引超出范围”。任何人都可以请快速帮忙吗?
您可以将groupby
object转换为tuple
s,然后再转换为dict
s:
d = dict(tuple(df.groupby('C')))
d = dict(tuple(df.groupby('C')))
print (d['A'])
A B C
0 1 0.670449 A
1 2 -1.265135 A
print (d['B'])
A B C
2 3 -0.35891 B
print (d['C'])
A B C
3 4 0.651704 C
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句