我正在编写一个应用程序,用于计算不同时间段内的各种Pandas数据帧。这些Dataframe中的每一个都有额外的数据需要与它们一起存储。
我可以很容易地使用列表或dicts来定义一个结构来携带数据,但是如果结构很好就会很好。
我看过(尝试过的名字)。这很棒,因为它在访问信息时简化了语法。元组问题当然是不可变的。
通过提前完成所有计算并且无法改变它们(没有跳过几个箍)或遵循代码来解决这个问题:
from collections import namedtuple
m = namedtuple("Month", 'df StartDate EndDate DaysInMonth
m.Month = 2
m.df = pandas.DataFrame()
etc....
这似乎有效,但我实际上误用了命名的元组类。上面代码中的m实际上是" type"不是一个实例。虽然它正在工作,我现在可以分配它,但我可能会在以后遇到一些问题。
type(m)
>>> type
有关我是否可以继续使用此结构或是否应该为数据结构创建自己的类的任何建议?
答案 0 :(得分:2)
你正在做什么设置m.Month为2是使用所有课程可以做的事情,因为他们像字典一样走路和说话。
class Month():
pass
a = Month()
a.df = 2
这没有做任何特别的事情。如果你查看一下 _ dict _ 属性
print(a.__dict__)
您会看到以下内容
{'__module__': '__main__', '__doc__': None, 'df': 2}
如果您想稍后更改值,我可能会使用空类而不是namedtuple。后台的所有命名元组件都不会为你的用例提供任何帮助。