如何使用loc或iloc更改特定的数据帧列值



我愚蠢地将5以上数据帧中的所有值替换为True,却没有意识到一列是事务号。有没有一种方法可以在一列中定位5个值,并将它们全部从true改回1、2、3、4和5?

df_bdPivot = pd.read_csv("BreadBasket_DMS_pivot.csv")
df_bdPivot.fillna(False, inplace=True)
df_bdPivot.replace(1, True, regex=True, inplace=True)
df_bdPivot.replace(2, True, regex=True, inplace=True)
df_bdPivot.replace(3, True, regex=True, inplace=True)
df_bdPivot.replace(4, True, regex=True, inplace=True)

如果有一种方法可以在不调整专栏的情况下完成我所做的事情,我需要保持不变,请告诉我。

试试这个:

df_bdPivot[(df_bdPivot > 0) & (df_bdPivot < 6)] = True

这样做的目的是,它采用两个掩码(df_bdPivot > 0df_bdPivot < 6(,并将它们连接在一起&,并使用生成的掩码从数据帧中选择值,然后将True分配给这些值。

掩码只是数据帧的一个副本,只是只有True值或False值,而不是它所具有的值。这两个掩码分别选择大于0和小于6的值(因此为1到5(。&创建一个新掩码,其中,对于每个值,如果两个数据帧中的值都是True,则为True,否则为False

最新更新