создать несколько новых фреймов данных на основе существующего столбца фреймов данных в Python - PullRequest
0 голосов
/ 23 мая 2018

У меня есть фрейм данных pandas, df, в котором есть 4 столбца и много строк.

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

color имеет 5 уникальных значений: red, blue, green, yellow, orange.

Я хочу сделать каждое из 5новые фреймы данных должны содержать все строки, которые имеют одно из значений в color.Например, df_blue должен иметь все строки и столбцы, где в другом фрейме данных значение из столбца color синее.

У меня следующий код:

# create 5 new data frames
df_red = []
df_blue= []
df_green= []
df_yellow= []
df_orange= []
for i in range(len(df)):
    if df['color'] == "blue"
       df_blue.append(df)

# i would do if-else statements to satisfy all 5 colors

Мне кажется, мне не хватает логики ... какие-либо предложения или комментарии?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

В итоге я сделал это для каждого цвета.

  blue_data = data[data.color =='blue']
0 голосов
/ 23 мая 2018

Вам нужно использовать groupby.Следующий фрагмент кода создает образец DataFrame и преобразует его в словарь, где цвета являются ключами, а соответствующие кадры данных являются значениями:

df = pd.DataFrame({'color': ['red','blue','red','green','blue'],
                   'foo': [1,2,3,4,5]})
colors = {color: dfc for color,dfc in df.groupby('color')}
#{'blue':   color  foo
#         1  blue    2
#         4  blue    5, 
# 'green':    color  foo
#          3  green    4, 
# 'red':   color  foo
#        0   red    1
#        2   red    3}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...