无法删除缺少 (0) 值的行 -Dataframe
Unable to drop rows with missing (0) value -Dataframe
我试图删除其中包含缺失值 (0) 的行,但没有成功。当我提取到一个 excel 文件时,它仍然在我的变量 GTCBSA 中显示许多值为 0 的行。我是不是写错了 drop 函数?
for i in range(2004,2007):
url = f"https://api.census.gov/data/{i}/cps/basic/jun?get=GTCBSA,PEFNTVTY"
a = pd.read_json(url)
a = pd.DataFrame(a.iloc[1:,]).set_axis(a.iloc[0,], axis="columns", inplace=False)
a.dropna(subset = ["GTCBSA"])
a
您可以使用
df = df[df['GTCBSA'].ne(0)]
# or
df = df[~df['GTCBSA'].eq(0)]
由于你的列类型是对象,正如我在评论中所说,你可以使用
df = df[df['GTCBSA'].ne('0')]
# or
df = df[df['GTCBSA'].astype(int).ne(0)]
此外,我建议您在我的第二条评论中检查列类型...
如果值实际上缺失(如 (Nan)),您使用的只会给您结果。如果值为 0,则不会。
根据以上答案,检查该值是否为零也不适合您。我唯一能想到的是这些值可能是字符串。
我认为你应该尝试这样的事情:
df = df[~(df['GTCBSA'] == '0')]
我试图删除其中包含缺失值 (0) 的行,但没有成功。当我提取到一个 excel 文件时,它仍然在我的变量 GTCBSA 中显示许多值为 0 的行。我是不是写错了 drop 函数?
for i in range(2004,2007):
url = f"https://api.census.gov/data/{i}/cps/basic/jun?get=GTCBSA,PEFNTVTY"
a = pd.read_json(url)
a = pd.DataFrame(a.iloc[1:,]).set_axis(a.iloc[0,], axis="columns", inplace=False)
a.dropna(subset = ["GTCBSA"])
a
您可以使用
df = df[df['GTCBSA'].ne(0)]
# or
df = df[~df['GTCBSA'].eq(0)]
由于你的列类型是对象,正如我在评论中所说,你可以使用
df = df[df['GTCBSA'].ne('0')]
# or
df = df[df['GTCBSA'].astype(int).ne(0)]
此外,我建议您在我的第二条评论中检查列类型...
如果值实际上缺失(如 (Nan)),您使用的只会给您结果。如果值为 0,则不会。
根据以上答案,检查该值是否为零也不适合您。我唯一能想到的是这些值可能是字符串。
我认为你应该尝试这样的事情:
df = df[~(df['GTCBSA'] == '0')]