【问题标题】:Repeating a function multiple time while changing its argument在更改其参数时多次重复一个函数
【发布时间】:2021-03-22 13:42:18
【问题描述】:

我有一个函数,它根据列“sup”的值对 df 的行进行分组,并将这些组转换为字符串(用于进一步处理)。

name sup
mushroom a
apples a
flour b
butter b
sugar c
salt d
def my_function(supplier):
 supplier_group = df.get_group(supplier)
 supplier_group.to_string()
 return supplier_group

这个函数的单个参数是我想用来按行分组的值

print(my_function('a'))
name sup
mushroom a
apples a
print(my_function('b'))
name sup
flour a
butter a

现在,我想传递一个值列表 Sup_list 作为函数的参数,并多次运行该函数,以便它遍历整个列表,而不必每次都手动输入值。

这是我要使用函数参数的列表

Sup_list = ['a','b','c','d'] 

我希望这是有道理的,并且我可以得到一些帮助!

干杯,

【问题讨论】:

    标签: python-3.x function dataframe loops pandas-groupby


    【解决方案1】:

    您可以简单地递归,将每个组的供应商数据附加到一个列表中,然后返回该列表。

    下面是实现这一点的简单递归。

    import pandas as pd
    
    
    def my_function(suppliers, res):
        if not suppliers:
            return res
        supplier_group = df.get_group(suppliers[0])
        res.append(supplier_group.to_string())
        my_function(suppliers[1:], res)
        return res
    
    
    df = pd.DataFrame({
        'name': ['mushroom', 'apples', 'flour', 'butter', 'sugar', 'salt'],
        'sup': ['a', 'a', 'b', 'b', 'c', 'd']
    }).groupby(['sup'])
    
    sup_list = ['a', 'b', 'c', 'd']
    
    res = my_function(sup_list, [])
    print(res)
    for r in res:
        print(r)
    

    【讨论】:

      猜你喜欢
      • 2016-06-28
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多