Создать один Dataframe для уникальных значений в Pandas - PullRequest
1 голос
/ 07 января 2020

Hello World ,

Я хотел бы создать один Dataframe для уникального значения из одного столбца.

Ниже приведен мой начальный Dataframe.

Date     Name     Value
01/19     Jean        15
01/19     Jean        15
01/17     Bean        15
01/16     Bean        15
01/19     Jean        15

Я нашел несколько ответов, касающихся создания фреймов данных на основе уникальных значений, таких как: Создание Pandas фреймов данных из уникальных значений в одном столбце .

С помощью следующего кода я У меня все в списке.

dfa = [x for _, x in df.groupby('name')]
dfa[0]

output 
Date     Name     Value
01/19     Jean        15
01/19     Jean        15
01/19     Jean        15
Date     Name     Value
01/17     Bean        15
01/16     Bean        15    

Однако я бы хотел назначить имя фрейма автоматически и не делать:

df_Jean= df[0]
df_Bean= df[1]

Ниже приведены ожидаемые результаты

df_Jean
Date     Name     Value
01/19     Jean        15
01/19     Jean        15
01/19     Jean        15

Ответы [ 2 ]

1 голос
/ 07 января 2020

Возможно, но не рекомендуется в python:

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

Или:

for i, g in df.groupby('name'):
    globals()[f'df_{i}'] =  g

Лучше использовать dict:

d = dict(tuple(df.groupby("Name")))

print (d['Jean'])
print (d['Bean'])
0 голосов
/ 07 января 2020

Вы должны использовать dict:

d = {k:v for k, v in df.groupby("Name")}

Тогда вы можете просто передать имена в качестве ключа:

print (d["Jean"])

    Date  Name  Value
0  01/19  Jean     15
1  01/19  Jean     15
4  01/19  Jean     15
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...