到目前为止,我有以下代码(来自cs50/pset6/DNA):
import csv
data_dict = {}
with open(argv[1]) as data_file:
reader = csv.DictReader(data_file)
for record in reader:
# `record` is a dictionary of column-name & value
name = record["name"]
data = {
"AGATC": record["AGATC"],
"AATG": record["AATG"],
"TATC": record["TATC"],
}
data_dict[name] = data
print(data_dict)
输出
{'Alice': {'AATG': '8', 'AGATC': '2', 'TATC': '3'},
'Bob': {'AATG': '1', 'AGATC': '4', 'TATC': '5'},
'Charlie': {'AATG': '2', 'AGATC': '3', 'TATC': '5'}}
以下是csv文件:
name,AGATC,AATG,TATC
Alice,2,8,3
Bob,4,1,5
Charlie,3,2,5
但我的目标是实现完全相同的目标,但不是硬编码键AATG
等,也因为我将使用包含更多值的更大数据库,我希望能够循环数据,而不是这样做:
data = {
"AGATC": record["AGATC"],
"AATG": record["AATG"],
"TATC": record["TATC"],
}
你能帮帮我吗?谢谢
您只需使用
pandas
:你也可以尝试使用熊猫
将示例数据用作.csv文件:
产出:
index_col = 0
因为您有我设置为索引的names列(以便以后成为字典中的顶级键).transpose()
所以顶级键是名称,而不是特性(AGATC、AATG等).to_dict()
将pandas.DataFrame转换为python字典您可以像这样简单地循环使用python中的字典:
相关问题 更多 >
编程相关推荐