每个人。
我需要帮助创建具有指定列的表
简单示例:
from collections import defaultdict
import pandas as pd
d = defaultdict(list)
mapp = {'A': 'Error 3231', 'B': 'Error 23143243', 'C': 'Error 3242e32'}
for i in ['A', 'B']:
d[i].append(f'U1_{mapp[i]}')
for i in ['A', 'C']:
d[i].append(f'R1_{mapp[i]}')
当我使用df1 = pd.DataFrame.from_dict(d, orient='index')
时,它会创建
0 1
A U1_Error 3231 R1_Error 3231
B U1_Error 23143243 None
C R1_Error 3242e32 None
但实际上,我想得到另一张像下面这样的表:
U1 R1
A U1_Error 3231 R1_Error 3231
B U1_Error 23143243 None
C None R1_Error 3242e32
值U1和R1是固定的。
谢谢。
转换d
以创建数据帧。通常最好在创建数据帧之前重新格式化数据:
df = pd.Series({(k, v[:2]): v for k, l in d.items() for v in l}).unstack()
print(df)
# Output
R1 U1
A R1_Error dsad2314 U1_Error 232324
B NaN U1_Error 232324
C R1_Error dsad2314 NaN
转换:
# From
>>> dict(d)
{'A': ['U1_Error 232324', 'R1_Error dsad2314'],
'B': ['U1_Error 232324'],
'C': ['R1_Error dsad2314']}
# To
>>> {(k, v[:2]): v for k, l in d.items() for v in l}
{('A', 'U1'): 'U1_Error 232324',
('A', 'R1'): 'R1_Error dsad2314',
('B', 'U1'): 'U1_Error 232324',
('C', 'R1'): 'R1_Error dsad2314'}