gpt4 book ai didi

python - 为 ":"切片定义一个变量

转载 作者:行者123 更新时间:2023-12-04 10:34:09 25 4
gpt4 key购买 nike

我想定义一个函数,如果设置了另一个变量,则该函数将对数据帧的一部分进行操作,或者在其他情况下对整个数据帧进行操作。例如 :

def mean_loc(df, col_name, idx=None):
if idx is not None:
return df.loc[idx, col_name].mean()
else:
return df[col_name].mean()

这工作得很好,但我想知道这是否可以做这样的事情:
def mean_loc_2(df, col_name, idx=None):
if idx is None:
idx = :
return df.loc[idx, col_name].mean()

这当然不起作用,但我想知道是否存在旁路?如果我这样做 idx = df.index ,评价 df.loc[df.index, col_name]比做要长得多 df.loc[:, col_name] .我试过使用 slice从内置函数做 idx = slice(len(df))但没有任何成功(它也更长并且不适用于 DateTime 索引)。

有谁知道如何做这样的事情?

最佳答案

:不是一个值;它是 Python 语法的一部分。您要的是slice : 的对象语法表示。

if idx is None:
idx = slice(None) # sadly, slice() does not work

slice object 是不可变的,使用 1 作为默认参数值是安全的。
def mean_loc_2(df, col_name, idx=slice(None)):
return df.loc[idx, col_name].mean()

关于python - 为 ":"切片定义一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60266161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com