[英]How to dynamically refer to dataframes in a for loop in Python
我对python非常陌生,这可能是一个简单的问题,但是我似乎找不到解决方案。
我有几个熊猫数据框,其名称类似于:output_1,output_2,...,output_n
我想对它们的长度求和(如行数),然后我想到了这样的内容:
sum =0
for num in range(1,n):
nameframe="output_"+str(num)
sum+=nameframe.shape[0]
问题在于,Python将名称框视为字符串,而不是数据框的名称。
环顾四周,我发现了一个潜在的解决方案:
sum =0
for num in range(1,n):
x = globals()["output_urls_%s" % num]
sum+=x.shape[0]
这似乎可行,但是不建议使用globals()。 因此,实现我的目的的最Python方式是什么?
最Python的方式可能是将数据帧存储在列表中。 例如,
dfs = [output_1, output_2, ...]
df_length = sum(x.shape[0] for x in dfs)
另外,您可以考虑将数据存储在组合的熊猫数据结构中,假设它们都以某种方式相关。 例如,如果每个数据帧是一个不同的组,则可以在组合帧上设置一个MultiIndex,例如
df = pd.concat([output_1, output_2, ...], keys=['group_a', 'group_b', ..])
然后,您可以选择合并帧的长度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.