我有一个熊猫数据框
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'
答案 0 :(得分:1)
我认为不可能。为什么不尝试使用字典呢?
示例
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")
答案 1 :(得分:1)
您可以按照here的说明来子类pandas.DataFrame
。有点棘手,但可能...
您可以将属性直接添加到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()
答案 2 :(得分:0)
import pandas as pd
df = pd.DataFrame( data=np.ones([4,4]) )
df.name = 'Ones'
print(df.name)