Измените значения в dataframe, используя 'where' в python - PullRequest
0 голосов
/ 23 октября 2019

Я пытался изменить значения в тех столбцах, dtypes которых являются числовыми значениями. Но мой код не работает.

имя фрейма данных: mergedDF

for c, dtype in zip(mergedDF.columns,mergedDF.dtypes):
    if dtype == np.int64:
        mergedDF[c].where(mergedDF[c]> 0,1)

В принципе это ничего не изменило. Когда я попытался присвоить имена переменных, он изменил все на 1

if dtype == np.int64:
    mergedDF[c] = mergedDF[c].where(mergedDF[c]> 0,1)

input:

col1   col2   col3
1       2       0
4       0       1
2       2       0

ожидаемый вывод:

col1   col2   col3
1       1       0
1       0       1
1       1       0

Только 2 типа вмой оригинальный столик.

case_history            object     # text column
cleaned_text            object     # text column
401k deduction           int64     # 0-10
assistance manual        int64     # 0-10
assistance quick         int64     # 0-10

1 Ответ

1 голос
/ 23 октября 2019

Вы можете сделать select_dtypes + clip, затем update

df.update(df.select_dtypes(include=np.number).clip(upper=1))
Out[118]: 
   col1  col2  col3
0     1     1     0
1     1     0     1
2     1     1     0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...