#python #csv
#python #csv
Вопрос:
Мой код выглядит так:
from sys import argv
import csv
person = {}
file = argv[1]
sequence = (open(argv[2], 'r').read()).strip()
with open(file, 'r', newline = '') as csvfile:
reader = csv.reader(csvfile)
for k, v0, v1, v2, v3, v4, v5, v6, v7 in reader:
person[k] = [v0, v1, v2, v3, v4, v5, v6, v7]
Есть ли какой-либо другой способ перебора столбцов для добавления в словарь более кратко или эффективно? Как, например, если вы не знаете количество столбцов?
Ответ №1:
Для достижения этой цели вы можете использовать нарезку списка: используйте первый элемент в строке в качестве ключа, а остальные элементы — в качестве значения.
with open(file, 'r', newline = '') as csvfile:
for row in csv.reader(csvfile):
person[row[0]] = row[1:]
Ответ №2:
Вы могли бы использовать unpacking
:
with open(file, 'r', newline = '') as csvfile:
reader = csv.reader(csvfile)
for key, *values in reader:
person[key] = values
Ответ №3:
Вы также можете прочитать csv
файл непосредственно в фрейм данных pandas:
import pandas as pd
data = pd.read_csv("filename.csv")
затем поместите его в словарь
data.to_dict()