首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提取词典和子词典

如何提取词典和子词典
EN

Stack Overflow用户
提问于 2020-08-30 08:25:48
回答 1查看 148关注 0票数 2

这里是由ID和ColumnA组成的2行原始数据。某些行可能有一个细节。

代码语言:javascript
复制
ID  ColumnA
1   {'1': {'Order': '0', 'Result': ''},
     '2': {'Order': 'Yellow', 'Result': 'Red'},
     '3': {'Order': 'Clear', 'Result': 'Tight'},
     '4': {'Order': '1.000-1.030', 'Result': '1.015'}}
2   {'1': {'Order': '0', 'Result': '1.015'},
     '4': {'Order': '1.000-1.030', 'Result': '2.4'},
     '5': {'Order': '6.0-7.0', 'Result': ''},
     '6': {'Order': 'Negative', 'Result': 'Negative'},
     '7': {'Order': 'Negative', 'Result': 'Negative'},
     '8': {'Order': 'Negative', 'Result': 'Positive'},
     '9': {'Order': 'Negative', 'Result': ''}}

我想从ColumnA中提取新的数据

代码语言:javascript
复制
ID Column_ID       Column_Order        ColumnD_Result
1  1               0               
1  2               Yellow              Red
1  3               Clear               Tight
1  4               1.000-1.030         1.015
2  1               0                   1.015
2  4               1.000-1.030         2.4
2  5               6.0-7.0                 
2  6               Negative            Negative
2  7               Negative            Negative
2  8               Negative            Positive
2  9               Negative              

如何编写词典的摘录?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-30 09:12:08

通过循环提取字典项:

代码语言:javascript
复制
import pandas as pd

data = [

    ['1', {'1': {'Order': '0', 'Result': ''},
     '2': {'Order': 'Yellow', 'Result': 'Red'},
     '3': {'Order': 'Clear', 'Result': 'Tight'},
     '4': {'Order': '1.000-1.030', 'Result': '1.015'}}],

    ['2', {'1': {'Order': '0', 'Result': '1.015'},
     '4': {'Order': '1.000-1.030', 'Result': '2.4'},
     '5': {'Order': '6.0-7.0', 'Result': ''},
     '6': {'Order': 'Negative', 'Result': 'Negative'},
     '7': {'Order': 'Negative', 'Result': 'Negative'},
     '8': {'Order': 'Negative', 'Result': 'Positive'},
     '9': {'Order': 'Negative', 'Result': ''}}]]

df = pd.DataFrame(data, columns=['ID', 'ColumnA'])

dfColumnA = pd.DataFrame([], columns=['ID', 'Column_ID', 'Column_Order', 'ColumnD_Result'])

i = 0
for index, row in df.iterrows():
    dictColumA = row['ColumnA']
    for column_ID, v in dictColumA.items():
        dfColumnA.loc[i] = [row['ID'], column_ID, v['Order'], v['Result']]
        i += 1

print(dfColumnA)

输出:

代码语言:javascript
复制
   ID Column_ID Column_Order ColumnD_Result
0   1         1            0               
1   1         2       Yellow            Red
2   1         3        Clear          Tight
3   1         4  1.000-1.030          1.015
4   2         1            0          1.015
5   2         4  1.000-1.030            2.4
6   2         5      6.0-7.0               
7   2         6     Negative       Negative
8   2         7     Negative       Negative
9   2         8     Negative       Positive
10  2         9     Negative               
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63655467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档