在Pandas中将DataFrame名称保存为.csv文件名称

14
In [37]: blue = pd.DataFrame({'A': ['foo','foo','foo','bar','bar'], 'B': [4.0, 4.0, 5.0, 8.0, 8.0]})

In [38]: blue
Out[38]: 
     A  B
0  foo  4
1  foo  4
2  foo  5
3  bar  8
4  bar  8

In [39]: red = pd.DataFrame({'A': ['foo','foo','foo','bar','bar'], 'B': [np.nan, np.nan, np.nan, np.nan, np.nan]})

In [40]: red
Out[40]: 
     A   B
0  foo NaN
1  foo NaN
2  foo NaN
3  bar NaN
4  bar NaN

In [41]: for df in [blue, red]:
   ....:     df.to_csv(str(df))
   ....:     

In [42]: !ls
     A  B?0  foo  4?1  foo  4?2  foo  5?3  bar  8?4  bar  8       A   B?0  foo NaN?1  foo NaN?2  foo NaN?3  bar NaN?4  bar NaN  postinstall.sh  vagrant

我有一些数据框。我循环每个数据框以处理它们。在循环结束时,我想将每个数据框保存为名为数据框名称的.csv文件。我知道通常很难在Python中将变量名转换为字符串,但我觉得我可能漏掉了一些显而易见的事情。数据框没有"name"属性,那我该怎么办?


2
为什么不将它们保存在字典中 {'red': pd.DataFrame(...), ...},然后使用键作为文件名进行保存呢? - jonrsharpe
1个回答

17

谢谢EdChum。我总是忘记字典对象的多功能性。 - verbsintransit
5
请注意:属性不会在操作之间保留,因此如果您进行几乎任何操作,例如“df[df.A>0]”,则会得到一个新的数据框架。 - Jeff
感谢@Jeff的留言。碰巧对我来说确实有效,但知道这一点肯定是好事。 - verbsintransit
@I_m_LeMarque,请不要在评论中向我发布错误,而是发布一个全新的问题。使用评论提出编程问题是低效的,我们需要数据、您的代码、期望的结果以及所有错误信息。 - EdChum
@I_m_LeMarque,再次提醒您,请勿在评论区询问您的问题,应该发布一个全新的问题进行咨询。如再有评论提及此事,我将会忽略不予回复。 - EdChum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接