python - Create a column which elements are dictionaries which values are based in another columns of the dataframe
问题描述
I want to create a column (ColumnE in the table below) in which each element is a dictionary that contains the information of the previous 4 columns
df = pd.DataFrame(data={'TestA_complete': ["No", "No","Yes"],'TestA_incomplete': ["No", "Yes","No"], 'TestB_complete': ["Yes", "Yes","No"], 'TestB_incomplete': ["No", "No","No"],
'ColumnE': [{"TestA_com":"No","TestA_inc":"No","TestB_com":"Yes","TestB_inc":"No"}, {"TestA_com":"No","TestA_inc":"Yes","TestB_com":"Yes","TestB_inc":"No"},
{"TestA_com":"Yes","TestA_inc":"No","TestB_com":"No","TestB_inc":"No"}]})
| | TestA_complete | TestA_incomplete | TestB_complete | TestB_incomplete | ColumnE |
|---:|:-----------------|:-------------------|:-----------------|:-------------------|:-------------------------------------------------------------------------------|
| 0 | No | No | Yes | No | {'TestA_com': 'No', 'TestA_inc': 'No', 'TestB_com': 'Yes', 'TestB_inc': 'No'} |
| 1 | No | Yes | Yes | No | {'TestA_com': 'No', 'TestA_inc': 'Yes', 'TestB_com': 'Yes', 'TestB_inc': 'No'} |
| 2 | Yes | No | No | No | {'TestA_com': 'Yes', 'TestA_inc': 'No', 'TestB_com': 'No', 'TestB_inc': 'No'} |
Thank you very much in advance
解决方案
IIUC,
df['ColumnE'] = df.apply(lambda x: x.to_dict(), axis=1)
Or
df['E'] = df.to_dict(orient='records')
Output (this output includes both ways):
TestA_complete TestA_incomplete TestB_complete TestB_incomplete ColumnE E
0 No No Yes No {'TestA_complete': 'No', 'TestA_incomplete': 'No', 'TestB_complete': 'Yes', 'TestB_incomplete': 'No'} {'TestA_complete': 'No', 'TestA_incomplete': 'No', 'TestB_complete': 'Yes', 'TestB_incomplete': 'No'}
1 No Yes Yes No {'TestA_complete': 'No', 'TestA_incomplete': 'Yes', 'TestB_complete': 'Yes', 'TestB_incomplete': 'No'} {'TestA_complete': 'No', 'TestA_incomplete': 'Yes', 'TestB_complete': 'Yes', 'TestB_incomplete': 'No'}
2 Yes No No No {'TestA_complete': 'Yes', 'TestA_incomplete': 'No', 'TestB_complete': 'No', 'TestB_incomplete': 'No'} {'TestA_complete': 'Yes', 'TestA_incomplete': 'No', 'TestB_complete': 'No', 'TestB_incomplete': 'No'}
推荐阅读
- visual-studio-code - How can I debug a VS Code Problem Matcher
- vba - 我正在尝试使用 dlookup 从表单中检查表中的值是否抵抗
- php - 在 Laravel 5.8 中转换数据潜水错误结果
- html - Angular ngx-translate - How to set a default value for missing param in translation value
- javascript - How to use global variables in Vue JS components?
- coq - get field from Record Types in Coq
- javascript - jQuery exeption on click inside container
- javascript - 缓存不返回函数
- eslint - Ignore warnings for the file placed in .eslintignore
- javascript - How to wait to multiple async function to finish?