我想创建一个字典,键为csv文件的第一行,值为{第一列:对应于行的列}的字典,例如test.csv
Header1, Header2, Header3
A, 1, 10
B, 2, 20
C, 3, 30
我正在使用data.drop(['Header1'], 1)
放下Header1
。
我希望结果是:
{'Header2':{A:1, B:2, C:3},'Header3':{A:10, B:20, C:30}}
我应该使用csv.DictReader
吗?还是用numpy数组?
答案 0 :(得分:0)
使用熊猫
df = pd.read_csv(testcsv, index_col=['Header1'], sep=',\s+')
df.to_dict()
输出:
{'Header2': {'A': 1, 'B': 2, 'C': 3}, 'Header3': {'A': 10, 'B': 20, 'C': 30}}
答案 1 :(得分:0)
另一个没有熊猫的例子:
import csv
with open('data_all.csv', newline='') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
dicts = {entry:{} for entry in next(reader)[1:]}
for row in reader:
index = 0
for _dict in dicts.values():
index+=1
_dict[row[0]]=row[index]
print(dicts)
{' Header2': {'A': ' 1', 'B': ' 2', 'C': ' 3'}, ' Header3': {'A': ' 10', 'B': ' 20', 'C': ' 30'}}