Создайте новый фрейм данных из двух объектов из df with many, где строки обусловлены одним объектом - PullRequest
1 голос
/ 12 мая 2019

Мне нужно проверить нормальность для восьми групп функций (Region_1, Region_2 ... и т. Д.) И мне нужно создать новый df для каждой; новый df будет иметь два столбца, один для «Количество», а другой для региона. Я горячо закодировал функции так, чтобы каждый новый df был «Количество» и «Region_x», где строка для «Region_x» имеет 1. Я пробовал много способов включить больше таблицы из jupyter, чтобы безрезультатно. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, чтобы помочь решить эту проблему.

Quantity    Region_0    Region_1    Region_2    Region_3    Region_4    Region_5    Region_6    Region_7    Region_8

Я пробовал варианты размещения условия в той же строке, где я определил новый df.

r0df = copy.deepcopy(q2df[["Quantity", "Region_0" =="1"]])

KeyError: '[False] не в индексе'

Мне нужен результат, чтобы получить новый фрейм данных с «Количество» и регионом, где наблюдения - это только строки в Регионе, которые имеют 1.

(этот фрагмент кода просто для лучшего примера таблицы, с которой я работаю в python; я использовал этот инструмент: https://senseful.github.io/text-table/)

<table><tbody><tr><th>Quantity</th><th>Region_1</th><th>Region_2</th><th>Region_3</th></tr><tr><td>45</td><td>0</td><td>1</td><td>1</td></tr><tr><td>36</td><td>1</td><td>1</td><td>1</td></tr><tr><td>40</td><td>0</td><td>1</td><td>1</td></tr><tr><td>30</td><td>1</td><td>0</td><td>0</td></tr></tbody></table>

1 Ответ

0 голосов
/ 12 мая 2019

IIUC, вы можете создать набор данных, например:

m=df.set_index('Quantity')
n=m[m.eq(1)]
d={'df_'+str(i):n[i].dropna().to_frame() for i in n.columns}

Вывод:

{'df_Region_1':           Region_1
 Quantity          
 36             1.0
 30             1.0, 'df_Region_2':           Region_2
 Quantity          
 45             1.0
 36             1.0
 40             1.0, 'df_Region_3':           Region_3
 Quantity          
 45             1.0
 36             1.0
 40             1.0}

Затем вы можете вызвать каждый ключсловарь, чтобы увидеть df, пример:

print(d['df_Region_1'])

          Region_1
Quantity          
36             1.0
30             1.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...