Я смотрел на эту и эту ветку, и хотя мой вопрос не так уж и отличается, он имеет несколько отличий.У меня есть датафрейм, полный floats
, который я хочу заменить на строки.Скажем:
A B C
A 0 1.5 13
B 0.5 100.2 7.3
C 1.3 34 0.01
В этой таблице я хочу заменить на несколько критериев, но работает только первая замена:
df[df<1]='N' # Works
df[(df>1)&(df<10)]#='L' # Doesn't work
df[(df>10)&(df<50)]='M' # Doesn't work
df[df>50]='H' # Doesn't work
Если я вместо этого сделаю выбор для 2-й строки на основеfloat
, все еще не работает:
((df.applymap(type)==float) & (df<10) & (df>1)) #Doesn't work
Мне было интересно, как применить pd.DataFrame().mask
здесь или любым другим способом.Как мне решить эту проблему?
В качестве альтернативы я знаю, что я могу читать столбец за столбцом и применять подстановки к каждой серии, но это кажется немного неэффективным
Редактировать: Может ли кто-нибудь объяснить, почему4 простых задания выше не работают?