我有以下数据(data_current
):
import pandas as pd
import numpy as np
data_current=pd.DataFrame({'medicine':['green tea','fried tomatoes','meditation','meditation'],'disease':['acne','hypertension', 'cancer','lupus']})
data_current
我想做的是将其中一个列进行转置,这样,我就不用用同一种药物和不同疾病的多行,而是用一行表示每种药物,用几列表示疾病。保持索引尽可能简单也很重要,即0,1,2。。。i、 我不想将“药品”指定为索引列,因为我将在其他键上合并它。
所以,我需要data_needed
data_needed=pd.DataFrame({'medicine':['green tea','fried tomatoes','meditation'],'disease_1':['acne','hypertension','cancer'], 'disease_2':['np.nan','np.nan','lupus']})
data_needed
我想你需要一个透视表。检查此链接以获取详细信息-->;http://pandas.pydata.org/pandas-docs/stable/reshaping.html
你认为这个输出可以接受吗?
data_current.pivot(index='medicine', columns='disease', values='disease')
这里有一个实现输出
首先,
groupby
在medicine
上,得到disease
as列表然后将列中的列表转换为单独的列
现在,你可以用
concat
--md
和dval
然后,根据需要重命名列。
这将给我们:
最后,我们可以:
相关问题 更多 >
编程相关推荐