【发布时间】:2019-08-25 02:53:52
【问题描述】:
我有一个数据框df:
df = pd.DataFrame({'ID': ['1','1','2'], \
'diag1': ['C1.10', 'E10.40','F20.00'], \
'diag2': ['M30', '','O92.15'], \
'diag3': ['E15.34', 'H20.00','']})
我想创建一个新的数据框df1,它应该包含df['diag1']、df['diag2'] 和df['diag3'] 列中存在的所有信息,基于每个ID 到一列df1['diag_all']。
我应该使用转换方法来实现这一点还是有其他功能可以做到这一点?
这就是我想要实现的目标:
ID diag_all
0 1 C1.10
1 1 E10.40
2 1 F20.00
3 1 M30
4 1 O92.15
5 2 E15.34
6 2 H20.00
请记住,我不想在此转换期间使用实际数据框中的许多其他列。因此,我们需要在df 中指定要转换为df1['diag_all'] 的列。
【问题讨论】:
-
你需要
df.replace('',np.nan).melt('ID').dropna()?? -
这也很棒。然后我可以通过 ID 对其进行排序并获得所需的结果。谢谢
-
是的,使用
sort_values()
标签: pandas python-3.5 pandas-groupby