如何将拆分“|”的代码转换为函数

2024-04-28 15:56:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个专栏叫brands。这些排看起来像这样

 |Brands|

|Gucci|Prada|
|Versace|Levis|Adidas|
|Champion|Diesel|Nike|

我有一个代码可以将“|”从列品牌中分离出来

split_columns=['Brands']

for brand in split_brands:
    brands_data[brand]=brands_data[brand].apply(lambda x: x.split('|'))

该代码运行良好,可以拆分“|”

我的问题是:

如何将代码转换为函数。我想学着这样做


Tags: 代码datasplitbranddiesel专栏championnike
2条回答

这样做

def func(split_brands):
    for brand in split_brands:
        brands_data[brand]=brands_data[brand].apply(lambda x: x.split('|'))

我将使用Google Doc String Format并转换您的代码。重要的是给函数和参数命名为易懂的名称,以便它们易于理解和解释


def split_columns(brands, brands_data):
    """Used to split column string on the `|` character

    Args:
        brands (str): String containing brand names separated
            by `|` character to be seperated
        brands_data (pandas df column): Dataframe column containing the information

    Returns:
        The updated dataframe column
    """    

    for brand in brands:
        brands_data[brand]=brands_data[brand].apply(lambda x: x.split('|'))

    return brands_data

这么说,我觉得这里有些不对劲。

如果您只是简单地传入一列,而您所要做的只是将该列返回,这样每个条目现在都是一个嵌套列表

'1|Versace|Levis|Adidas|' > ['1','Versace','Levis','Adidas']

最简单的方法是不使用函数,直接调用.apply()


假设一个名为df的数据帧和一个名为Brands

>>>df
                    Brands
0           0|Gucci|Prada|
1  1|Versace|Levis|Adidas|
2  2|Champion|Diesel|Nike|

>>>df["Brands"] = df["Brands"].apply(lambda row: row.split('|'))
>>>df
                          Brands
0            [0, Gucci, Prada, ]
1  [1, Versace, Levis, Adidas, ]
2  [2, Champion, Diesel, Nike, ]

希望这一澄清能对您有所帮助

相关问题 更多 >