【发布时间】:2021-11-12 05:25:31
【问题描述】:
我有一个数据集,想用 None 替换特定列的 0。
diabetes_data = pd.read_csv("https://raw.githubusercontent.com/npradaschnor/Pima-Indians-Diabetes-Dataset/master/diabetes.csv")
temp = diabetes_data.copy()
null_index = diabetes_data[diabetes_data["Glucose"]==0].index
print(diabetes_data.loc[null_index])
然后我使用replace方法,尝试用None替换0
temp["Glucose"] = diabetes_data["Glucose"].replace(0, None)
print(temp.loc[null_index])
在上图中可以看出这些值没有被None替换,我也不确定这些值是什么。
但是当我将参数作为列表传递给 replace 函数时,它会按预期工作。
temp1 = diabetes_data.copy()
temp1["Glucose"].replace([0], [None], inplace=True)
temp1.loc[null_index]
以上是我期望的输出。
replace 的文档说它也接受 int。
所以我无法理解为什么在传递int 时会给出奇怪的结果?
【问题讨论】: