{'BLOCKER': 'F', 'CRITICAL': 'E', 'MAJOR': 'D', 'MINOR': 'B', 'NO RISK': 'A'}
這是字典,位于名為 severity 的列中,
我想要的資料框是
A B C D E F
NO RISK MINOR NA MAJOR CRITICAL BLOCKER
uj5u.com熱心網友回復:
這應該這樣做
df.severity.apply(pd.Series)
uj5u.com熱心網友回復:
一個簡單的解決方案:
input_map = {'BLOCKER': 'F', 'CRITICAL': 'E', 'MAJOR': 'D', 'MINOR': 'B', 'NO RISK': 'A'}
inv_map = {v: k for k, v in input_map.items()} # {'F': 'BLOCKER', 'E': 'CRITICAL', 'D': 'MAJOR', 'B': 'MINOR', 'A': 'NO RISK'}
pd.DataFrame({k: [inv_map.get(k, 'NA')] for k in 'ABCDEF'})
A B C D E F
0 NO RISK MINOR NA MAJOR CRITICAL BLOCKER
uj5u.com熱心網友回復:
import pandas as pd
mdi = {"BLOCKER": ["F"], "CRITICAL": ["E"], "MAJOR": ["D"], "MINOR": ["B"], "NO RISK": ["A"]}
pd.DataFrame.from_records({v[0]: [k] for k, v in mdi.items()})
輸出:
A B D E F
0 NO RISK MINOR MAJOR CRITICAL BLOCKER
您需要自己將其應用于源資料中的列。
uj5u.com熱心網友回復:
如果您有一系列字典作為輸入,請使用:
df2 = pd.json_normalize(df['severity'])
cols = df2.groupby(np.zeros(len(df2))).first().squeeze()
df2 = (df2
.notna().mul(cols.index)
.set_axis(cols, axis=1)
.rename_axis(columns=None)
)
輸出:
F E D B A
0 BLOCKER CRITICAL MAJOR MINOR NO RISK
使用的輸入:
dic = {'BLOCKER': 'F', 'CRITICAL': 'E', 'MAJOR': 'D', 'MINOR': 'B', 'NO RISK': 'A'}
df = pd.DataFrame({'severity': [dic]})
多行輸入的輸出示例:
F E D B A O
0 BLOCKER CRITICAL MAJOR MINOR NO RISK
1 BLOCKER CRITICAL MINOR NO RISK OTHER
``
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/504390.html
