Вот пример. того, как могут выглядеть данные из этой функции макета:
Код: Выделить всё
import random
import csv
# Predefined lists for NAME, CARS, and PHONE OS
NAMES = ["John Doe", "Jane Smith", "Alice Johnson", "Bob Brown", "Charlie Davis", "Eve White", "David Wilson", "Emma Taylor", "Frank Harris", "Grace Clark"]
CAR_BRANDS = ["Toyota", "Ford", "BMW", "Tesla", "Honda", "Chevrolet", "Nissan", "Audi"]
PHONE_OS = ["Android", "iOS"]
def create_csv(file_name, num_records):
cur_random_list_size = random.randint(1, min(len(NAMES), len(CAR_BRANDS)))
with open(file_name, mode='w', newline='') as file:
writer = csv.writer(file)
writer.writerow(["ID", "NAME", "MONTH", "CARS", "PHONE OS"])
for i in range(num_records):
record = {
"id" : i + 1,
"name": [NAMES[n] for n in range(cur_random_list_size)],
"month": random.randint(1,12),
"cars": [random.choice(CAR_BRANDS) for _ in range(cur_random_list_size)],
"phone": random.choice(PHONE_OS)
}
writer.writerow(record.values())
print(f"CSV file '{file_name}' created with {num_records} records.")
create_csv("people_data.csv", 5)
ID
ИМЯ
МЕСЯЦ
МАШИНЫ
ТЕЛЕФОН ОС
1
"['Джон Доу', 'Джейн Смит', 'Элис Джонсон', 'Боб Браун', 'Чарли Дэвис', 'Ева Уайт']"
2
"['Тойота', 'Ниссан', 'Ниссан', 'Ниссан', 'Ауди', 'Honda']"
iOS
2
"['Джон Доу', 'Джейн Смит', 'Элис Джонсон', 'Боб Браун', 'Чарли Дэвис', 'Ева Уайт']"
4
"['Nissan', 'Ford', 'Honda', 'Toyota', 'Ford', 'Honda']"
iOS
3
"['Джон Доу', 'Джейн Смит', 'Элис Джонсон', ' Боб Браун», «Чарли Дэвис', 'Ева Уайт']"
8
"['BMW', 'Honda', 'Tesla', 'Tesla', 'Тесла', 'Ниссан']"
Android
4
"['Джон Доу», «Джейн Смит», «Элис Джонсон», «Боб Браун», «Чарли Дэвис», «Ева Уайт»]"
3
< td>"['Tesla', 'Audi', 'Chevrolet', 'Audi', 'Chevrolet', 'BMW']"
iOS
5
"['Джон Доу', 'Джейн Смит', 'Элис Джонсон', ' Боб Браун', 'Чарли Дэвис', 'Ева Уайт']"
8
"['Ford', 'Tesla', 'BMW ', 'Тойота', 'Ниссан', 'Форд']"
Android
< /div>
И в идеале я бы хотел разделить это на пять отдельных файлов CSV, как пример для john_doe_people_data.csv:
ИД
ИМЯ
МЕСЯЦ
МАШИНЫ
ОС ТЕЛЕФОНА
1
Джон Доу
2
Toyota
iOS
2
Джон Доу
4
Nissan
iOS
3
Джон Доу
8
BMW
Android
4
Джон Доу3
Тесла
iOS
5
Джон Доу
8
Ford
Android
В общем, как мне использовать pandas создать отдельные файлы CSV для каждого элемента в столбце списка, сохраняя при этом остальную часть данных в каждом файле?
Подробнее здесь: https://stackoverflow.com/questions/792 ... ith-pandas