我有几个Pandas数据框,我想一次遍历这些数据框以进行一些初始验证和调试,但是我不知道如何实现它的自动化。我在这里阅读过很多文章,并在各种博客上尝试做类似的事情,并且人们的回答都倾向于“这是错误的做法”,但我还没有发现任何能真正做到我所想的事情寻找。在比伪代码略多的地方,我想做的是:
for i in ('train', 'test', 'address', 'latlon'):
print('{}:'.format(i))
print(<i>.head()) ## what should <i> be?
在shell和Perl脚本中,就像将变量名封装在{}(${i}
)中一样简单,但是我找不到Python等效项。我已经尝试过format()
的各种排列,但是我不断得到AttributeError: 'str' object has no attribute 'head'
(如果仅尝试print(i.head())
则会出现相同的错误)。我也尝试过使用globals()
,但是在第一个循环中遇到关键错误。
这仅用于早期开发,并且将被删除,因此它不必过于干净,但这是我现在遇到过几次的问题,这确实使我感到烦恼。
编辑:经过一番尝试和错误后,我得到了下面的工作。希望这会在将来对某人有所帮助。
frames = dict({'train': train.head(), 'test': test.head(), 'address':address.head(), 'latlon': latlon.head()})
for i in frames.keys():
print('{}'.format(i))
print(frames[i])
相对于其他语言中的$ {i}来说,这仍然是一个改进,但我仍然不明白,但是它有效。