在多列上展开 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
我正在尝试基于多个数据帧分解数据帧(实际上是在该列的任何位置的数据中有逗号的情况下),但是当我尝试多列时最终会出错。 我尝试过 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