在多列上展开 pandas 数据框

Exploding pandas dataframe on multiple columns

我正在尝试基于多个数据帧分解数据帧(实际上是在该列的任何位置的数据中有逗号的情况下),但是当我尝试多列时最终会出错。 我尝试过 split()、explode() 等

输入

预期输出:

def pad_list(lst, max_len):
    return lst + [lst[-1]] * (max_len - len(lst))

new_df = df.apply(lambda row: row.apply(lambda item: pad_list(item.split(','), max(row.str.contains(',') + 1))), axis=1).explode(df.columns.tolist())

输出:

>>> new_df
    Cat1   Cat2    Cat3    Cat4    Cat5
0    Cat  table     Pen  Toyota  Sydney
0    Cat  chair     Pen   Honda   Perth
1  Horse  Stand  Pencil  Holden    Bali
1  Horse  Stand  eraser  Holden    Bali