问题说明:原始数据导入字段index3就是json字符串格式(带单引号str),想要提取字典里面key值为"name"的所有value;
df_tmp #pandas dataframe
#字段index3是json字符串格式(带单引号str),去掉单引号就是list of dics
df_tmp["index3"][0]
'[{"name": "Mary", "age":"7", "Sex":"F"},{"name":"Jack", "age":"11","Sex":"M"}]'
df_tmp["index3"][1]
'[{"name":"Jack", "age":"11","Sex":"M"},{"name":"Lucy","age":"9","Sex":"F"},{"name":"Nancy", "age":"10","Sex":"F"}]'
df_tmp["index3"][2]
'[{"name": "Luke", "age":"6", "Sex":"F"},{"name":"Lily", "age":"11","Sex":"F"}]'
已有解决方案:把json转码成list of dictionaries,三层循环,遍历dataframe,遍历list,遍历字典;
问题:数据量稍微多一点,速度特别慢,python小白求大神想想其他的方案,比如pandas有没有好用的函数,可不可以用mysql处理?
只能这样遍历吧,要提取所有的name至少要遍历一遍所有的name,就算预处理成其他数据格式也需要这个步骤。
你的转码成list of dictionaries是怎么做得,能上代码吗。
两种方法,一种是如你所说,用pandas,将所有的数据整合成一个dataform,然后获取‘name’列,这种做法第一次需要处理数据生成dataform表格,后期使用的话会比较快。
第二种方法,遍历裂变时不要用循环,可以借用map函数来获取对应的元素,这个效率回避循环高一些。
具体使用那种,以你具体使用情景来定