Подмножество Dataframe в Отдельные Dataframes с помощью Loop Python Pandas - PullRequest
0 голосов
/ 24 апреля 2018

Я хочу разделить фрейм данных на отдельные фреймы.

Итак:

df:

     name    color   value
      joe     yellow   7.0
      mary    green    9.0
      pete    blue     8.0
      mary     red     8.8
      pete     blue    7.7
      joe     orange   2.0

Я хочу получить:

df_joe

         name    color   value
      joe     yellow   7.0
      joe     orange   2.0

df_mary

     name    color   value
      mary    green    9.0
      mary     red     8.8

df_pete

     name    color   value
      pete    blue     8.0
      pete     blue    7.7

Это достаточно просто сделатьиндивидуально и вручную.Но я хочу автоматизировать это в цикле или с помощью `groupby '.Есть много связанных ответов о том, как получить эту информацию, но ни один из найденных мною вопросов не обсуждает сохранение разбитой информации в нескольких фреймах данных.

ТАК В действительности это не дублирующий вопрос из-за следующего:

Я пытался зациклить что-то вроде этого:

names = ['joe','pete','mary']
for name in names
   'df_' + name = df[df['Name'] == name]

Но я получаю ошибку, присваивая подмножеству dataframe недавно созданное имя.

Как я могусделать это?

1 Ответ

0 голосов
/ 24 апреля 2018

Лучше здесь создать dictionary of DataFrames от groupby объект:

dfs = dict(tuple(df.groupby('name')))
print (dfs)
{'joe':   name   color  value
0  joe  yellow    7.0
5  joe  orange    2.0, 'pete':    name color  value
2  pete  blue    8.0
4  pete  blue    7.7, 'mary':    name  color  value
1  mary  green    9.0
3  mary    red    8.8}

print (dfs['mary'])
   name  color  value
1  mary  green    9.0
3  mary    red    8.8

Но если действительно нужны переменные по строкам (не рекомендуется, но возможно):

for name, df in df.groupby('name'):
   globals()['df_' + name] = df

print (df_mary)
   name  color  value
1  mary  green    9.0
3  mary    red    8.8
...