У меня есть фрейм данных pandas, и я хотел бы увеличить любое значение больше нуля с некоторым приращением (скажем, .001), но только в подмножестве столбцов.
df=pd.DataFrame({'a': ['abc', 'abc', 'abc', 'abc'], 'b': [2,np.nan, 0, 6], 'c': [1, 0, 2, 0]})
a b c
0 abc 2.0 1
1 abc NaN 0
2 abc 0.0 2
3 abc 6.0 0
Итак, я попробовал это:
df[df.loc[:,['b', 'c']]>0]+=1
TypeError: Cannot do inplace boolean setting on mixed-types with a non np.nan value
Однако, поскольку первый столбец имеет объект типа d, я не могу сделать это, как вы можете видеть по ошибке.Желаемый результат будет:
a b c
0 abc 2.001 1.001
1 abc NaN 0
2 abc 0.0 2.001
3 abc 6.001 0
Есть ли какой-нибудь способ сделать это без явного зацикливания каждого столбца в отдельности?
Мне кажется, я просто упускаю простой подход, но, похоже, не могу найти пример.