我如何从这样的字典中获取:
j = {'BRAA': ['AEN-1', 'AMC-1', 'APL-1C'], 'BRAB': ['BRVO-1', 'CNBC-1']}
对于像这样的熊猫数据帧:
df = pd.DataFrame({"Unit": ["BRAA", "BRAA", "BRAA", "BRAB", "BRAB"], "Network": ["AEN-1", "AMC-1", "APL-1C", 'BRVO-1', 'CNBC-1']})
Unit Network
0 BRAA AEN-1
1 BRAA AMC-1
2 BRAA APL-1C
3 BRAB BRVO-1
4 BRAB CNBC-1
j = {'BRAA': ['AEN-1', 'AMC-1', 'APL-1C'], 'BRAB': ['BRVO-1', 'CNBC-1']}
df = pd.DataFrame([{'Unit': k, 'Network': i} for k, v in j.items() for i in v])
print(df)
指纹:
Unit Network
0 BRAA AEN-1
1 BRAA AMC-1
2 BRAA APL-1C
3 BRAB BRVO-1
4 BRAB CNBC-1
您可以使用pd.DataFrame.from_dict
设置orient='index'
构建数据框,并melt
:
(pd.DataFrame.from_dict(j, orient='index').T
.melt(var_name='Unit', value_name='Network')
.dropna())
Unit Network
0 BRAA AEN-1
1 BRAA AMC-1
2 BRAA APL-1C
3 BRAB BRVO-1
4 BRAB CNBC-1
您可以使用其他字典。
j = {'BRAA': ['AEN-1', 'AMC-1', 'APL-1C'], 'BRAB': ['BRVO-1', 'CNBC-1']}
dict = {"Unit":[], "Network":[]}
for key, val in j.items():
for v in val:
dict["Unit"].append(key)
dict["Network"].append(v)
df = pd.DataFrame([dict])
print(df)