Python 将数据帧保存到多个保留数据帧名称的CSV
在一般代码中,如何将多个数据帧导出到具有相同标题的CSV 我试过:Python 将数据帧保存到多个保留数据帧名称的CSV,python,python-3.x,pandas,for-loop,Python,Python 3.x,Pandas,For Loop,在一般代码中,如何将多个数据帧导出到具有相同标题的CSV 我试过: dframes_list = [economy, finance, language] for i, df in enumerate(dframes_list, 1): filename_attempt1 = "{}.csv".format(i) filename_attempt2= f"{i}.csv" df.to_save(filename_attempt2)
dframes_list = [economy, finance, language]
for i, df in enumerate(dframes_list, 1):
filename_attempt1 = "{}.csv".format(i)
filename_attempt2= f"{i}.csv"
df.to_save(filename_attempt2)
预期产出:
file saved: "economy.csv"
file saved: "finance.csv"
file saved: "language.csv"
我认为在python中创建字符串变量,因为然后生成字符串是不可能的
然后最好是为字符串中的名称创建另一个列表,并使用zip
:
dframes_list = [economy, finance, language]
names = ['economy','finance','language']
for i, df in zip(names, dframes_list):
filename_attempt1 = "df_{}.csv".format(i)
另一个想法是创建数据帧的dict:
dframes_dict = {'economy': economy, 'finance': finance, 'language': language}
for i, df in dframes_dict.items():
filename_attempt1 = "df_{}.csv".format(i)
如果需要使用数据帧的dict,请使用:
for k, v in dframes_dict.items():
v = v.set_index('date')
#another code for processing each DataFrame
dframes_dict[k] = v
如果在笔记本上执行此操作,可以使用hack搜索
locals()
,并使用regex匹配“dframes_list=[.+]”,该值应返回字符串值
'dframes_list = [economy, finance, language]'
然后你可以做替换,直到你进入“经济、金融、语言”,在这一点上,你可以拆分并得到一个列表
colab版本是这样工作的
temp_local = dict(locals())
data = {}
for k,v in temp_local.items():
try:
if re.match('dframes_list = \[.+\]', v):
data[k] = v
print(k, v)
except:
pass
那么
其中,键
已从数据中识别
不建议这样做。如何生成dframes\u list=[经济、金融、语言]
?谢谢。如何更新数据帧或至少是字典键?如果我在forloop中执行df=df.set_index('date')
,当我在forloop外运行时,不会发生任何变化:dframes_list['economy']
@asd-给我一点时间。@asd-添加了答案,您需要在最后一步中设置dfs的虚拟值。非常感谢@jezrael
names = re.findall('\[.+\]', data[key])[0].replace('[', '').replace(']', '').split(',')