让我们看一个简单的函数,它接受一个字符串并返回一个 Dataframe :
import pandas as pd
def csv_to_df(path):
return pd.read_csv(path, skiprows=1, sep='\t', comment='#')
向此函数添加类型提示的推荐Python方法是什么?
如果我问python一个DataFrame的类型,它会返回pandas.core.frame.DataFrame
。
def csv_to_df(path: str) -> pandas.core.frame.DataFrame:
return pd.read_csv(path, skiprows=1, sep='\t', comment='#')
6条答案
按热度按时间3j86kqsm1#
为什么不直接使用
pd.DataFrame
呢?结果是一样的:
ckocjqey2#
我目前正在执行以下操作:
其中:
我不知道这有多深奥,但我发现作为一个类型提示,它是可以理解的。
czq61nw13#
现在有一个pip包可以帮助解决这个问题。https://github.com/CedricFR/dataenforce
你可以用
pip install dataenforce
安装它,并使用非常Python类型的提示,比如:vddsk6oq4#
查看here给出的答案,其中解释了包
data-science-types
的用法。演示
使用mypy以相同的方式运行:
$ mypy program.py
ohtdti5x5#
这偏离了最初的问题,但基于@dangom使用
TypeVar
的回答和@Georgy的注解(无法在类型提示中指定DataFrame列的数据类型),您可以使用类似下面的简单解决方案来指定DataFrame中的数据类型:dly7yett6#
看一下pandera。
pandera提供了一个灵活的表达性API,用于对类似 Dataframe 的对象执行数据验证,以使数据处理管道更具可读性和鲁棒性。 Dataframe 包含pandera在运行时显式验证的信息。这在生产关键型或可复制的研究设置中非常有用。