Как преобразовать столбец данных Pandas в данные строки bin? - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть файл данных Pandas с именем odf, который выглядит следующим образом:

Customer         Employees
   A                 2
   B                 100
   C                 5
   D                 1000

Я создал пользовательские корзины для данных сотрудника:

df = odf['Employees']
bins = [0,5,1000]
df.value_counts(bins=bins)

(-0.001, 5.0]        2
(5.0,   1000]        2
Name:Employees, dtype: int64

Теперь я хотел быприсоединиться к этим данным, но я не уверен, как это сделать, или если есть более простой способ выполнить то, что мне нужно.Я хочу, чтобы конечный результат выглядел следующим образом:

  Customer         Employees    NewBinColumn
   A                 2          -0.001, 5.0
   B                 100         5.0,   1000
   C                 5          -0.001, 5.0
   D                 1000        5.0,   1000

Таким образом, я вижу столбец bin рядом с исходными столбцами данных

, вот что я пробовал, но это не сработало:

ndf = odf.join(df, lsuffix='Employees', rsuffix='Employees', how='left')
ndf

И в то время как он объединяет два, я получаю следующее:

  Customer         EmployeesEmployees    Employees
   A                 2                     2
   B                 100                   100
   C                 5                     5
   D                 1000                  1000

Если бы это был SQL, я использовал бы оператор case, чтобы получить новый столбец, но янадеялся, что есть более простой способ сделать это динамически, не выписывая действительно длинное утверждение.

1 Ответ

0 голосов
/ 09 ноября 2018

Форматирование не совсем то, что вы хотите, но использование pd.cut на odf['Employees'], например:

odf['NewBinColumn'] = pd.cut(odf['Employees'],bins)

даст:

  Customer  Employees NewBinColumn
0        A          2       (0, 5]
1        B        100    (5, 1000]
2        C          5       (0, 5]
3        D       1000    (5, 1000]
...