创建一个函数来分解列上的数据框

Create a function to explode dataframe on column

我写了一些代码来分解列上的 df。

df=df.assign(col=df['col'].str.split(',')).explode('col')

我现在想做一个函数做同样的事情:

def explode(df,col_ind,col:str):
df=df.assign(col_ind=df[col].str.split(',')).explode(col)
return df

explode(df5,beans,'beans')

我收到以下错误:

NameError: name 'beans' is not defined

Blockquote

有人知道如何改进该功能使其有效吗?

您调用了一个未定义的 bean 变量。要从字符串定义一个 kwarg,你必须将它作为一个 kwarg 字典传递给 **:

def explode(df, col_ind, col:str):
    df=df.assign(**{col_ind : df[col].str.split(',')}).explode(col)
    return df

explode(df5, 'beans', 'beans')