我有一个熊猫数据框
a = [0, 1, 2, 3]
b = [2, 3, 4, 5]
df = pd.DataFrame({'col1':a, 'col2':b})
我不想使用df.name,但是我想打印数据框名称df,并且也可以使用类似保存csv的地方
print(df + '.csv')
我期待
'df.csv'
我认为不可能。您为什么不尝试使用字典呢?
示例
a = [0, 1, 2, 3]
b = [2, 3, 4, 5]
var_map = {'df':pd.DataFrame({'col1':a, 'col2':b})}
# Save all dataframes in dictionary with name
for key in var_map:
var_map[key].to_csv(key + ".csv")
您可以按照pandas.DataFrame
的说明来继承here。这有点棘手,但可能...
您可以将属性直接添加到DataFrame的实例。不推荐,但可能。
您还可以创建一个包含DataFrame的类,并按如下所述重载__repr__
和to_csv
方法
这里是第二种解决方案的示例
import pandas as pd
df = pd.DataFrame({'col1':a, 'col2':b})
df.myname ='my_super_name'
这里是第三个解决方案的示例
import pandas as pd
class MyDataFrame():
def __init__(self, _myname, *args, **kwargs):
self.myname = _myname
self.df = pd.DataFrame(*args, **kwargs)
def __repr__(self):
return self.myname
def to_csv(self):
self.df.to_csv(self.myname + '.csv')
a = [0, 1, 2, 3]
b = [2, 3, 4, 5]
df = MyDataFrame('my_data_frame', {'col1':a, 'col2':b})
print(df)
df.to_csv()