【发布时间】:2019-12-03 11:44:54
【问题描述】:
我有一个如下所示的数据框:
df = pd.DataFrame({'person_id' :[1,1,1,2,2,2,2,2,2],'level_1': ['L1FR','L1Date','L1value','L1FR','L1Date','L1value','L2FR','L2Date','L2value'], 'val3':['Fasting','11/4/2005',1.33,'Random','18/1/2007',4.63,'Fasting','18/1/2017',8.63]})
但我希望我的输出数据框如下所示:
请注意,concept_id = 123 表示“禁食”,456 表示“随机”。我在另一个 csv 文件中有此信息(密钥)。如何链接所有这些?
但是,我设法走到了这里:
d1 = s1[s1['level_1'].str.contains('Date')]
d2 = s1[~s1['level_1'].str.contains('Date')]
d1['g'] = d1.groupby('person_id').cumcount()
d2['g'] = d2.groupby('person_id').cumcount()
d3 = pd.merge(d1,d2,on=["person_id",'g'],how='left').drop(['g','level_1_x','level_1_y'], axis=1)
请注意,我展示的是单个 csv 数据文件和包含 concept_ids 的单个哈希/密钥文件。实时,我有 30 多个 csv 文件和 1 个哈希/密钥文件。
所以哈希文件保持不变,但数据文件经常变化。
例如,这个文件有两个概念 "Fasting" 和 "Random" ,可以通过查看哈希文件将其替换为 123,456。同样,其他数据文件可能包含“Sick”、“Healthy”等术语,应替换为 135,579 等。
但数据格式保持不变。你能帮我实现吗?
** 更新输出截图**
** cum count 分组不匹配 **
我希望根据值的出现次数,每个组的所有这些值都应该具有相同的数字(例如:1,1,1 或 10,10,10)。我对吗?但不知道为什么它不同。此外,我的输入数据框没有 NA
【问题讨论】:
标签: python python-3.x pandas list dataframe