Как назвать каждый фрейм данных, разработанный в цикле for, значением списка

#python #pandas #for-loop

#python #pandas #цикл for

Вопрос:

У меня есть фрейм данных pandas, где я хочу отфильтровать 10 разных фреймов данных на основе уникальных значений в столбце. У меня есть список этих значений, и я хотел бы динамически называть каждый отфильтрованный фрейм данных именем, по которому он фильтруется.

Вот несколько примеров кода:

 import pandas as pd

df = {'value':[1,1,1,1,2,2,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5,5,5,5],
      'value2':['a','a','a','a','b','b','c','c','c','c','c','c','c','d','d','d','d','e','e','e','e','e','e','e']}

df1 = pd.DataFrame(df)

value2 = ['a','b','c','d','e']

for value in value2:
    value = df1[df1['value2'] == value]
  

Таким образом, конечным результатом будет пять фреймов данных, названных для каждого значения в list значении2, отфильтрованных по всем наблюдениям из df1, которые также относятся к значению2.

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

1. Разве это не то же самое, что df.groupby("value2") ?

Ответ №1:

Было бы проще создать словарь:

 dfs = {}
for value in value2:
    dfs[value] = df1[df1['value2'] == value]
  

Затем, если вы хотите получить к ним доступ извне, вы можете просто запросить dfs[value] .