如何更改多个pandas dataframe列中的值?

wfypjpf4  于 2023-09-29  发布在  其他
关注(0)|答案(2)|浏览(105)

假设我有一个像this这样的 Dataframe 。
我想对“cholesterol”和“gluc”列中的数据进行标准化,这样如果值为1,那么它就变成0,如果它大于1,那么它就变成1(基本上0总是好的,1总是坏的)。我可以用np.where()分别对每一列执行此操作,但我很好奇是否有一种方法可以用一个命令更改这两列,但我在网上没有找到任何相关的东西。
我可以先用df.loc[:, ['cholesterol', 'gluc']]对列进行切片,这将创建两个列的视图。有没有一种方法可以用一个命令来更改这个视图,或者我仍然需要单独更改每个列?

cclgggtu

cclgggtu1#

试试这样:

df.loc[:, ['cholesterol', 'gluc']] = np.where(df.loc[:, ['cholesterol', 'gluc']] > 1, 1, 0)
xsuvu9jc

xsuvu9jc2#

我想你可以用sklearn库中的binarize函数来实现。不是一句话,而是差不多
https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.binarize.html#sklearn.preprocessing.binarize
应该是这样的

from sklearn.preprocessing import binarize
binarizer = preprocessing.Binarizer(0.0).fit(df)
output = binarizer.transform(X)

更多信息这里
https://scikit-learn.org/stable/modules/preprocessing.html#preprocessing-binarization

相关问题