Из колонки csv таблицы сделать кортеж python
Есть csv таблица с одной колонкой:
user
12345
23456
34567
Помогите получить значение класса tuple вида
('12345','23456','34567')
Есть csv таблица с одной колонкой:
user
12345
23456
34567
Помогите получить значение класса tuple вида
('12345','23456','34567')
Можно, например, так, c помощью pandas:
import pandas as pd
res = tuple(pd.read_csv("111.csv")["user"].astype(str).values.tolist())
print(res)
('12345', '23456', '34567')
Пример использующий только csv из стандартной библиотеки.
import csv
def read_csv_file(file_path):
data = []
with open(file_path, 'r') as file:
csv_reader = csv.reader(file, delimiter=';')
next(csv_reader)
for row in csv_reader:
try:
data.append(row[0])
except IndexError:
continue
return tuple(data)
file_path = 'filename.csv'
print(read_csv_file(file_path))
Обратите внимание, что ридер считывает по одной строчке из файла и преобразует строки csv в листы с индексами. Тк что первая колонка - будет 0 индексом. Так же есть вариант преобразовывать в dict - но это будет затратнее по производительности и месту в памяти.
Следущий код:
next(csv_reader)
Заставляет пропустить первую строчку с хедером колонки/колонок в файле. Потому что csv_reader является генератором.
А вообще - вам даже CSV модуль не нужен. Вы можете просто прочитать файл и достать от туда все значения, подчистив лямбдой переносы строк. И пропустив первую строчку с мусорным хедером)
with open(file_path, 'r') as f:
x = tuple(map(lambda x: x.replace('\n', ''), list(f)[1:]))
print(x)