我想自动获得每个 Dataframe 的名称-作为一个字符串-并将该字符串切片以获得最后4个字符,即年份。在每个解决方案中,我发现 Dataframe 的名称需要重新分配,这对我来说不起作用。
到目前为止,我已经尝试过:
for df in (grid_2010, grid_2018, grid_2022):
df_year = str(df)
print('{}: col1 vs. col2'.format(df_year[-4]))
print(df['col1'].corr(df['col2']))
但我得到的是m而不是年份
m: col1 vs. col2
0.9915766248731003
m: col1 vs. col2
0.9660661083576073
m: col1 vs. col2
0.9537479266164907
我想要:
2010: col1 vs. col2
0.9915766248731003
2018: col1 vs. col2
0.9660661083576073
2022: col1 vs. col2
0.9537479266164907
我还尝试将每个df作为列表中的一个项目发送,并相应地切片:
for df in (grid_2010, grid_2018, grid_2022):
df_year = list[str(df)]
print('{}: col1 vs. col2'.format(df_year[0][-4]))
print(df['col1'].corr(df['col2']))
...但是我得到了与上面完全相同的结果。我正在尝试一种方法来将dfMap到列表中相应的年份,但到目前为止还没有运气。
这是其中一个数据框的子集视图,包含我需要的列。所有数据框都具有相同的结构,只是名称(如上所述)和列值不同
Col1 Col2
0 42244 1078
1 56068 1285
2 63894 1860
3 5850 664
欢迎任何帮助和/或建议!
1条答案
按热度按时间rxztt3cl1#
正如我在评论中提到的,由于年份不在 Dataframe 中,并且您知道年份的唯一方法是因为您的变量声明,因此您可以在for循环中使用
tuples
。