Очистите эту переменную int64 в Python - PullRequest
0 голосов
/ 14 июня 2019

Это необработанное распределение переменной ЧАСТОТА

NaN    22131161
1.0     4182626
7.0      218343
3.0      145863
1         59432
0.0       29906
2.0       28129
4.0       15237
5.0        4553
8.0        3617
3          2754
7          2635
9.0         633
2           584
4           276
0           112
8            51
5            42
6.0          19
A             9
I             7
9             6
Q             3
Y             2
X             2
Z             1
C             1
N             1
G             1
B             1
Name: FREQUENCY, dtype: int64
  1. группа 1.0 должна быть такой же, как 1. Я написал df ['x'] = df ['x] .replace ({ '1.0:' 1' }).это ничего не меняет.9,0 против 9, 3,0 против 3 имеют один и тот же симптом
  2. Как частота может отображаться как int64, где присутствуют буквы?
  3. Желаемый результат 1: сгруппировать все группы букв + NaN в одну группу.Остальные числовые группы значений объединяются (например, 1,0 и 1 = 1).В SAS я просто запускаю это: y = 1 * X.Я просто даю значение 10 для представления групп символов + NaN.Как это сделать в Python, особенно элегантно?
  4. Результат 2: извлечь двоичную переменную z = 1, если x = NaN.В противном случае z = 0

1 Ответ

0 голосов
/ 03 июля 2019

Первый выпуск » группа 1.0 должна быть такой же, как и 1. Я написал df ['x'] = df ['x] .replace ({' 1.0: '1'}). это ничего не меняет. 9,0 против 9, 3,0 против 3 имеют те же симптомы " было исправлено, когда я добавил dtype = {'FREQUANCY': 'object'} во время чтения файла csv. Группа 1.0 рухнула с группой 1 ... После этого замена работает просто отлично.

Все остальные проблемы в значительной степени решены, за исключением проблемы 2 в том, что она по-прежнему устанавливает тип переменной int64, где присутствуют символьные переменные. Я думаю, что, возможно, Python принимает правило большинства для голосования по типу данных. Это действительно верно, числовые значения доминируют над подсчетом.

...