0
Какой самый эффективный способ сделать что-то подобное (что не работает, поскольку аргумент replace
- это фрагмент)?Модификация на месте ломтиков
DF[DF.col == x].col.replace(... , inplace=True)
Какой самый эффективный способ сделать что-то подобное (что не работает, поскольку аргумент replace
- это фрагмент)?Модификация на месте ломтиков
DF[DF.col == x].col.replace(... , inplace=True)
Одним из способов было бы выполнить задание в явном виде:
In [11]: df = pd.DataFrame([[1, 2], [3, 4]], columns=['a', 'b'])
In [12]: df
Out[12]:
a b
0 1 2
1 3 4
In [13]: df.loc[df.a == 3, 'b'] = df.loc[df.a == 3, 'b'].replace({4: 7})
In [14]: df
Out[14]:
a b
0 1 2
1 3 7
Другой вариант заключается в использовании update
, это вполне может быть быстрее:
df.update(df.loc[df.a == 3, 'b'].replace({4: 7}))