gpt4 book ai didi

python - 为一行代码编写一个函数?

转载 作者:行者123 更新时间:2023-11-28 22:16:35 27 4
gpt4 key购买 nike

我目前正在使用 pandas DataFrame 并遇到了一个问题。是否应该有一个单独的函数来设置索引,或者它是否会使代码变得复杂,因为无论如何您都可以简单地编写一行代码。

def set_time_as_index(df):
return df.set_index('time')

当前代码的简化版本:

def create_df_rdy_for_export(input_data):
dframe = pd.DataFrame(input_data)
dframe = set_time_as_index(dframe)
return dframe

还是这样写更好:

def create_df_rdy_for_export(input_data):
dframe = pd.DataFrame(input_data)
dframe = dframe.set_index('time')
return dframe

我只是将索引设置为 time 列。而且由于它只在脚本中出现一次,因此无需编写单独的函数,但我已经习惯了,感觉很奇怪,没有函数。是否有任何约定或性能权衡?

最佳答案

这是一个基于意见的问题,但我会回答这个问题,因为在使用 Pandas 数据帧时有一些约定。

常见的做法是链式操作。您可以简单地按顺序应用方法。例如(为清楚起见添加一个额外的方法):

def create_df_rdy_for_export(input_data):
dframe = pd.DataFrame(input_data)\
.set_index('time')\
.set_axis(['col1', 'col2', 'col3'], axis=1)
return dframe

每一行代表一个不同的方法。在我看来,没有必要编写单独的函数 来调用单个方法。对于更复杂的数据帧操作,您可以使用 pd.DataFrame.pipe .例如:

def format_dataframe(df):
df = df.set_index('time')\
.set_axis(['col1', 'col2', 'col3'], axis=1)
return df

def create_df_rdy_for_export(input_data):
dframe = pd.DataFrame(input_data).pipe(format_dataframe)
return dframe

这样做的好处是您可以仅将逻辑的操作部分重用于其他用途,而且 pipe 仍然允许您链接其他方法。

关于python - 为一行代码编写一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52101907/

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