你能告诉我如何使用交叉匹配将数据从字典转移到表中吗?例如,有一个字典,其中每个项目都有自己的组件集,还有一个表,其中列是项目,行是组件。
我需要把字典中的每个项目,并检查表中的每个组件。如果项目中有这样的组件,那么在正确的单元格中放入X
。
构件不是唯一的,它们可以在其他项目中重复。项目和组件具有不同的编号。
示例:
project_components = {'Project_1': ['component_1', 'component_2', 'component_3', 'component_4'],
'Project_2': ['component_2', 'component_3'],
'Project_3': ['component_3', 'component_4'],
'Project_4': ['component_2'], ...}
Template.csv
|组件/项目| 项目_1|项目_2|项目_3|项目_4|项目_N →→|
| --|--|--|--|--|--|
| 组件_1||||||
| 组件_2||||||
| 组件_3||||||
| 组件_4||||||
| 组件_N ↓||||||
结果:
|组件/项目| 项目_1|项目_2|项目_3|项目_4|项目_N →→|
| --|--|--|--|--|--|
| 组件_1| X|||||
| 组件_2| X| X||X||
| 组件_3| X| X| X|||
| 组件_4| X||X|||
| component_N ↓||||||
我知道iterrows()
,但不知道如何将其与循环字典结合起来,并将值放入正确的单元格并将其保存为CSV。
def read_csv():
data = pd.read_csv("Template.csv")
for row in data.iterrows():
print(row)
read_csv()
添加Template.csv
Component / Project; Project_1; Project_2; Project_3; Project_4;Project_N;
component_1;
component_2;
component_3;
component_4;
component_N;
1条答案
按热度按时间ujv3wf0j1#
您可以直接从字典创建输出,而无需模板:
如果你真的有一个带有特定索引/列的模板,你可以
reindex_like
它:输出量:
如果你真的想循环并修改模板:
输出量:
CSV:
Component / Project
是索引。*