Python 3.x 这个python函数签名在Kedro教程中意味着什么?
我正在研究Kedro库,因为我的团队正在研究将其用于我们的数据管道 去参加官方的太空飞行教程 我遇到了这个函数:Python 3.x 这个python函数签名在Kedro教程中意味着什么?,python-3.x,kedro,Python 3.x,Kedro,我正在研究Kedro库,因为我的团队正在研究将其用于我们的数据管道 去参加官方的太空飞行教程 我遇到了这个函数: def preprocess_companies(companies: pd.DataFrame) -> pd.DataFrame: """Preprocess the data for companies. Args: companies: Source data. Returns: Prepro
def preprocess_companies(companies: pd.DataFrame) -> pd.DataFrame:
"""Preprocess the data for companies.
Args:
companies: Source data.
Returns:
Preprocessed data.
"""
companies["iata_approved"] = companies["iata_approved"].apply(_is_true)
companies["company_rating"] = companies["company_rating"].apply(_parse_percentage)
return companies
- Companys是包含数据的csv文件的名称
(companys:pd.Dafarame)
是将“companys”数据集作为数据帧读取的简写。如果是这样的话,我不明白最后的pd.Dataframe是什么意思
我试图查看有关这种代码风格的python文档,但没有找到任何
非常感谢帮助我理解这一点
谢谢公司:pd.DataFrame函数定义中的
:
部分以及->
符号是。这在Python中不是必需的,但许多人喜欢将其包括在内。如果函数定义不包含以下内容,但改为:
def预处理公司(公司):
这是一个通用的Python东西,而不是任何kedro特定的东西
kedro将公司注册为kedro数据集的方式与此函数定义完全不同,并通过catalog.yml文件完成:
公司:
类型:pandas.CSVDataSet
文件路径:data/01_raw/companys.csv
然后将定义一个节点(在pipeline.py中),指定preprocess\u companies
函数应将kedro数据集companies
作为输入:
节点(
func=预处理公司,
inputs=“companys”,#此行指的是数据集名称
输出=“预处理的公司”,
name=“预处理公司”,
),
理论上,函数本身中参数的名称可能完全不同,例如
def预处理公司(任何您想要的):
。。。尽管将其命名为与数据集相同的名称是很常见的。在这种情况下,公司在技术上是任何DataFrame
。但是,当包装在Kedro节点
对象中时,将传入正确的数据集:
节点(
func=预处理公司,上面发布的函数
输入=“原始公司”,Kedro将从名为“原始公司”的目录条目中读取
输出为“已处理的公司”,Kedro将写入名为“已处理的公司”的目录条目
)
本质上,参数名在这里并不重要,它是这样命名的,以便阅读代码的人知道它在语义上是关于公司的,但函数名也这样做
以上从技术上讲是一种简化,因为我不想讨论MemoryDataset
,但希望它涵盖了要点。这是声明输入类型的方法(公司:pd.DataFrame)。这里companies是参数,pd.DataFrame是它的类型。同样->pd.DataFrame这是输出的类型
总的来说,他们说pd.DataFrame类型的组件将返回pd.DataFrametype变量。
我希望你能得到它非常感谢你付出努力提供答案!非常感谢您花时间详细解释!