问题相关代码
import pandas as pd
data_list1 = [
['1', '1', '1', "{'a': '124','b': '125','c': '823', 'ProcessInfo0': 'abcd', 'd0': '123', 'e0': '123', 'ProcessInfo1': 'cdef', 'd1': '123', 'e1': '123', 'ProcessInfo2': 'fghf', 'd2': '123', 'e2': '123'}"]
, ['2', '2', '2', "{'a': '153','b': '127','c': '193', 'ProcessInfo0': 'abyd', 'd0': '123', 'e0': '123', 'ProcessInfo1': 'cdse', 'd1': '123', 'e1': '123', 'ProcessInfo2': 'fghh', 'd2': '123', 'e2': '123'}"]
, ['3', '3', '3', "{'a': '193','b': '223','c': '124', 'ProcessInfo0': 'atbc', 'd0': '123', 'e0': '123', 'ProcessInfo1': 'cdue', 'd1': '123', 'e1': '123', 'ProcessInfo2': 'fgih', 'd2': '123', 'e2': '123'}"]
, ['4', '4', '4', "{'a': '124','b': '323','c': '153', 'ProcessInfo0': 'a1bc', 'd0': '123', 'e0': '123', 'ProcessInfo1': 'cdbe', 'd1': '123', 'e1': '123', 'ProcessInfo2': 'fgkh', 'd2': '123', 'e2': '123'}"]
, ['5', '5', '5', "{'a': '123','b': '125','c': '623', 'ProcessInfo0': 'ablc', 'd0': '123', 'e0': '123', 'ProcessInfo1': 'cnde', 'd1': '123', 'e1': '123', 'ProcessInfo2': 'fgmh', 'd2': '123', 'e2': '123'}"]]
data_list = []
for item in data_list1:
for k,v in eval(item[3]).items():
if k.find("ProcessInfo")>=0:
data_list.append([item[0],item[1],item[2],"{}:{}".format(k,v)])
df = pd.DataFrame(data_list)
df.columns = ['a', 'b', 'c', 'd']
print(df)
运行结果
a b c d
0 1 1 1 ProcessInfo0:abcd
1 1 1 1 ProcessInfo1:cdef
2 1 1 1 ProcessInfo2:fghf
3 2 2 2 ProcessInfo0:abyd
4 2 2 2 ProcessInfo1:cdse
5 2 2 2 ProcessInfo2:fghh
6 3 3 3 ProcessInfo0:atbc
7 3 3 3 ProcessInfo1:cdue
8 3 3 3 ProcessInfo2:fgih
9 4 4 4 ProcessInfo0:a1bc
10 4 4 4 ProcessInfo1:cdbe
11 4 4 4 ProcessInfo2:fgkh
12 5 5 5 ProcessInfo0:ablc
13 5 5 5 ProcessInfo1:cnde
14 5 5 5 ProcessInfo2:fgmh
我想要达到的结果
增加一列e列,数据是:
a | b | c | d | e |
---|---|---|---|---|
1 | 1 | 1 | ProcessInfo0:abcd | 'a': '124','b': '125','c': '823','d0': '123', 'e0': '123' |
1 | 1 | 1 | ProcessInfo1:cdef | 'a': '124','b': '125','c': '823','d1': '123', 'e1': '123' |
1 | 1 | 1 | ProcessInfo2:fghf | 'a': '124','b': '125','c': '823','d2': '123', 'e2': '123' |
省略 |
也就是processinfo0对应'd0':' ','e0':' '
processinfo1对应'd1':' ','e1':' '
processinfo2对应'd2':' ','e2':' '