我有一个带有更多产品描述的数据框架
data = {'product': ['1234', '5678'],
'descriptionOLD': ['old1234', 'old5678'],
'descriptionNEW': ['new1234', 'new5678'],
'descriptionFUTURE': ['future1234', 'future5678'],
}
如何以这种格式拆分此数据帧
product type description
1234 descriptionOLD old1234
1234 descriptionOLD old5678
1234 descriptionNEW new1234
1234 descriptionNEW new5678
1234 descriptionFUTURE future1234
1234 descriptionFUTURE future5678
...
到目前为止,我已经尝试:
df=pd.DataFrame(data)
df['type']=''
df['description']=''
for id, row in df.iterrows():
df['type'][id]='descriptionOLD'
df['description'][id]=row['descriptionOLD']
df.pop('descriptionOLD')
df.pop('descriptionNEW')
df.pop('descriptionFUTURE')
我得到了这个结果:
product type description
0 1234 descriptionOLD old1234
1 5678 descriptionOLD old5678
但我不知道如何处理新的和未来的描述,以实现所需的数据帧
尝试通过
filter()
方法筛选列,通过join()
方法获取“产品”列,最后通过melt()
方法:或
尝试通过
filter()
方法过滤出列,通过set_index()
方法保留“产品”,通过reset_index()
方法使产品返回列,最后通过melt()
方法:或
根据
@NK03
的建议,您还可以使用filter()
和stack()
的组合:相关问题 更多 >
编程相关推荐