我有一个 pandas 数据框,其中有 1 行,列中的值按类别分隔
我想创建这样的结构:
最好的解决方案是什么?
最佳答案
您可以使用:
(df.set_axis(df.columns.str.split('\s*>\s*', expand=True), axis=1)
.loc[0].explode()
.reset_index(name='item')
.rename(columns=lambda x: x.replace('level_', 'category'))
)
输出:
category0 category1 category2 item
0 car audi a4 item1
1 car audi a4 item2
2 car audi a4 item3
3 car bmw 3er item1
4 car bmw 3er item4
5 car bmw 3er item5
6 moto bmw gs item6
使用的输入:
df = pd.DataFrame({'car > audi > a4': [['item1', 'item2', 'item3']],
'car > bmw > 3er': [['item1', 'item4', 'item5']],
'moto > bmw > gs': [['item6']]})
关于python - Pandas 转换列表值及其列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74389607/