这里是由ID和ColumnA组成的2行原始数据。某些行可能有一个细节。
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中提取新的数据
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 如何编写词典的摘录?
发布于 2020-08-30 09:12:08
通过循环提取字典项:
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)输出:
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 https://stackoverflow.com/questions/63655467
复制相似问题