【发布时间】:2018-11-02 19:23:33
【问题描述】:
我已经将一些不同的 excel/csv 文件与 pandas 拼凑在一起,用于我正在尝试构建的数据库。我在这里看到了 few examples 从 csvs 创建嵌套 Jsons,虽然这些有助于部分复制我需要的东西,但它们最终都达不到要求。
相反,我的数据是逐步的,类似于this,其中数据由主题 ID #“连接”,但有关个人访问和样本的信息位于单独的行中,不相关的列带有“NaN”。
csv 格式:
subject_id,name,dob,gender,visit_date,date_entered,entered_by,sample_id,collected_by,collection_date
1,Bob,1/1/00,M,,,,,,
1,,,,1/1/18,1/2/18,Sally,,,
1,,,,1/2/18,1/2/18,Tim,,,
1,,,,,,,XXX123,Sally,1/3/18
2,Mary,1/2/00,F,,,,,,
2,,,,1/3/18,1/4/18,Sally,,,
2,,,,,,,YYY456,Sally,1/5/18
2,,,,,,,ZZZ789,Tim,1/6/18
我正在尝试获得这样的输出:
{
'subject_id': '1'
'name': 'Bob',
'dob': '1/1/00',
'gender': 'M',
'visits': {
'1/1/18': {
'date_entered': '1/2/18',
'entered_by': 'Sally',
}
'1/2/18': {
'date_entered': '1/2/18',
'entered_by': 'Tim',
}
}
'samples': {
'XXX123': {
'collected_by': 'Sally',
'collection_date': '1/3/18',
}
}
}
{
'subject_id': '2'
'name': 'Mary',
'dob': '1/2/00',
'gender': 'F',
'visits': {
'1/3/18': {
'date_entered': '1/4/18',
'entered_by': 'Sally',
}
}
'samples': {
'YYY456': {
'collected_by': 'Sally',
'collection_date': '1/5/18',
}
'ZZZ789': {
'collected_by': 'Tim',
'collection_date': '1/6/18',
}
}
}
访问和样本信息嵌套在更一般的信息下。这显然是我想要完成的简化数据集,但任何建议都将不胜感激。
谢谢。
编辑: 更准确地反映 csv 数据。不像原始示例那样精简或完整。
'subid,firstvisit,name,contact,dob,gender,visitdate1,age,visitcategory,samplenumber,label_on_sample,completed_by
1,12/31/11,Bob,,12/31/00,Male,,,,,,
1,,,,,,12/31/15,17,Baseline Visit,,,
1,,,,,,12/31/16,18,Follow Up Visit,,,
1,,,,,,12/31/17,18,Follow Up Visit,,,
1,,,,12/31/00,Male,,17,,XXX123,1,Sally
2,1/1/12,,,1/1/01,Female,,,,,,
2,,,,,,1/1/11,10,Baseline Visit,,,
2,,,,,,1/1/12,11,Follow Up Visit,,,
2,,,,,,1/1/13,12,Follow Up Visit,,,
2,,,,,,1/1/14,13,Follow Up Visit,,,
2,,,,,,1/1/15,14,Follow Up Visit,,,
2,,,,1/1/01,Female,,15,,YYY456,2,
2,,,,1/1/01,Female,,15,,ZZZ789,2,Sally'
【问题讨论】:
标签: python json mongodb pandas