小编And*_*ndy的帖子

在 __init__ 中为用户类设置默认/空属性

我有不错的编程水平,并从这里的社区中获得了很多价值。然而,我从来没有在编程方面进行过太多的学术教学,也没有与真正有经验的程序员一起工作。因此,我有时会为“最佳实践”而苦恼。

对于这个问题,我找不到更好的地方,尽管可能有讨厌这些问题的喷子,我还是发布了这个。如果这让你感到不安,很抱歉。我只是想学习,而不是惹你生气。

题:

当我创建一个新类时,我是否应该在init 中设置所有实例属性,即使它们是 None 并且实际上后来在类方法中分配了值?

MyClass 的属性结果见下例:

class MyClass:
    def __init__(self,df):
          self.df = df
          self.results = None

    def results(df_results):
         #Imagine some calculations here or something
         self.results = df_results
Run Code Online (Sandbox Code Playgroud)

我在其他项目中发现,当类属性只出现在类方法中时,它们可能会被埋没,而且还有很多事情要做。

那么对于经验丰富的专业程序员来说,什么是标准做法呢?为了可读性,您会在init 中定义所有实例属性吗?

如果有人有任何关于我可以在哪里找到这些原则的材料的链接,那么请将它们放在答案中,我们将不胜感激。我知道 PEP-8 并且已经在上面搜索了我的问题好几次,但找不到任何涉及此问题的人。

谢谢

安迪

python class instance-variables instance python-attrs

19
推荐指数
2
解决办法
2万
查看次数

从 <class 'pandas.core.frame.Pandas'> 列表构建 DataFrame

如何从pandas.core.frame.Pandas元素列表构建 pandas DataFrame ?

说明问题的代码示例:

我有下面的数据框:

import pandas as pd     
df = pd.DataFrame({'col1': [1, 2], 'col2': [0.1, 0.2]}, index=['a', 'b'])


   col1  col2
a     1   0.1
b     2   0.2
Run Code Online (Sandbox Code Playgroud)

然后我迭代它以创建行列表:

data_list = []
for row in df.itertuples():
    data_list.append(row)

[Pandas(Index='a', col1=1, col2=0.1), Pandas(Index='b', col1=2, col2=0.2)]
Run Code Online (Sandbox Code Playgroud)

当我检查数据类型时,我得到:

for i in data_list:
    print(type(i))

<class 'pandas.core.frame.Pandas'>
<class 'pandas.core.frame.Pandas'>
Run Code Online (Sandbox Code Playgroud)

如何将这个 data_list 重新构建为 DataFrame?

我尝试过将集合中的计数器转换为字典,但无法使其工作。不清楚这是否是解决问题的最佳方法

python tuples dataframe pandas

5
推荐指数
1
解决办法
1万
查看次数