我的目标是使用源数据帧中的两列作为每个col1 col2组合的命名约定来开发多个数据帧名称。
例如,如果period
和dps
是源数据框中的列,我想为每种period-dps
组合创建数据框,如下所示:
period = ['a','b','c']
dps = ['x','y','z']
for d in dps:
for p in period:
exec('{}{} = pd.DataFrame()'.format(p,d))
这段代码经过测试可以正常工作,但是当我合并实际数据时,出现SyntaxError:无效的语法错误。
我的问题是什么可能导致此错误?我应该先检查和清理的原始数据是否有问题?
谢谢
不要使用exec
。创建一个dict
以存储您的数据框。
period = ['a','b','c']
dps = ['x','y','z']
frames = {}
for d in dps:
for p in period:
frames[f'{p}{d}'] = pd.DataFrame()
您可能还会考虑嵌套字典。
from collections import defaultdict
frames = defaultdict(dict)
for d in dps:
for p in period:
frames[p][d] = pd.DataFrame()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句