ИЗВЛЕКАТЬ случайный% данных из словаря

#python #dictionary #random

#python #словарь #Случайный

Вопрос:

У меня есть словарь («напряжение») с несколькими листами Excel в качестве элементов в нем. Я хочу извлечь 20% от общего количества листов из исходного словаря и сохранить их в отдельном словаре («образец»). Я написал следующий код.

 data = pd.ExcelFile('filename.xlsx')

voltage = {}
for sheet in data.sheet_names:
        voltage[sheet] = pd.read_excel(data, sheet)

sample = dict(random.sample(voltage.items(), int(len(voltage) * 20 / 100)))
  

С помощью приведенного выше кода я могу получить 20% от общего количества листов, но эти листы не удаляются из исходного словаря. Я хочу удалить те случайно выбранные 20% листов, которые будут удалены из исходного словаря и сохранены в новом словаре. Кто-нибудь может мне помочь с этим??

Комментарии:

1. Можете ли вы объяснить, почему вы хотите это сделать? Похоже, в итоге вы получите два одинаковых словаря. Также.. почему вы просто не повторяете. sample.keys() и удалить эти элементы из исходного словаря?

2. Я хочу разделить данные, потому что мне нужно выполнять разные операции с каждым набором данных. Да, поскольку я новичок в python, я не знал, как к этому подойти… Спасибо за ваш ответ 🙂

Ответ №1:

Добавьте эту строку:

 for i in sample:
    del voltage[i]
  

Это приведет к удалению всех элементов типа ключ-значение из вашего словаря напряжения для всех ключей, которые мы нашли в словаре примеров