Python:如何在使用数据帧名称作为字符串的同时迭代数据帧?

2024-04-27 13:23:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有三个不同的Pandas数据帧

df_1
df_2
df_3

我想循环数据帧,进行一些计算,并使用数据帧的name存储输出。换句话说,像这样的东西

^{pr2}$

需要输出文件:

'mypath/df_1.csv''mypath/df_2.csv'和{}

我很难这么做,因为df_1是一个对象,而不是字符串。 有什么办法吗?在

谢谢!在


Tags: 文件csv数据对象字符串namepandasdf
2条回答

另一个更一般的解决方案是使用列名创建dict,然后按items()循环:

d = {'df_1':df_1,'df_2':df_3, 'df_3':df_3}
for k, my_df in d.items():
    my_df.reset_index(inplace=True)
    my_df.to_csv('mypath/' + k +'.csv')

另一个可能的解决方案是使用另一个带有数据帧名称的list,然后enumerate并按位置获取{}的值:

^{pr2}$

要使用toucv方法将df存储为csv,我们需要一个字符串路径。在

所以我们在清单上列举。这给了我们for循环中的2个变量。 第一个变量是循环迭代的索引。就像个柜台。在

所以基本上enumerate在循环中给了我们一个counter对象。在

我们使用counter值来创建一个索引字符串。 我们用它来创建一个唯一的文件名来存储。在

for idx, my_df in enumerate([df_1, df_2, df_3]):
  my_df.reset_index(inplace=True)
  my_df.to_csv('mypath/df_' + str(idx + 1) +'.csv')

相关问题 更多 >