【发布时间】:2021-02-26 09:09:18
【问题描述】:
有了这个数据框:
index order_id id_product qty comments date last_name
0 0 55 100000158 2 NaN 2020-10-26T14:33:00 Stone
1 1 55 100000339 1 NaN 2020-10-26T14:33:00 Stone
我创建一个列表,分组并应用:
list_test = []
df_g = df.groupby('order_id')
df_g.apply(process_order,dealer_id,file)
一个测试函数来测试如何返回一个元素:
def process_order(df,dealer_id,file):
if True:
return 'bob'
如何将 process_order 返回的字符串 'test' 附加到列表 list_test 中?
结果如下:
print(list_test)
['bob']
【问题讨论】:
-
我承认我不明白你在这里要做什么。我相信传递给
apply的函数只接受一个参数。话虽如此,将项目附加到列表test_list的唯一方法是从函数范围之外获取对它的引用(例如,如果它在模块中声明,或者在test_function是嵌套的)或将其作为参数传递给函数。 -
我试图在 process_order() 函数中列出错误,以便稍后处理它们。如果 process_order() 函数一切顺利,那么 list_test 应该是空的。但如果发现错误,我想将其附加到列表中
-
您可以将错误列表添加到函数的参数中,并附加任何类似的错误。
def process_order(df,dealer_id,file, errors_list): -
就像我说的,有两种方法可以获取对该列表的引用:将其作为参数传递或从包含范围访问它。如果它是在模块级别声明的,你甚至可以为不同的模块导入它(尽管我不建议这样做。)
标签: python python-3.x pandas dataframe return