【发布时间】:2026-01-24 12:50:02
【问题描述】:
我对整个 pandas 和 numpy 世界都很陌生。我有使用 python 的经验,但没有这方面的经验。我正在尝试使用数据集,但发现了一个我无法解释的问题。如果有经验的人帮助我了解其中出了什么问题,那就太好了。
我有一个包含三个字段的 CSV 文件。 “年龄”、“工薪阶层”和“收入”。标题丢失了,所以我以以下方式加载了 CSV -
import numpy as np
import pandas as pd
df = pd.read_csv("test.csv", index_col=False, header=None, names=["age", "workclass", "income"])
现在最后一列中的数据采用这种格式 - “50K”。我想根据上面的值将数据转换为“0”或“1”。因此,“50K”为 1。为此,我编写了这行代码
def test_func(x):
if x == "<=50K":
return "0"
else:
return "1"
df['income'] = df['income'].apply(test_func)
这使得所有列都变为“1”!我在 test_func 中做了一些打印,看起来 x 具有正确的值,并且 x 的类型是“str”。我无法理解,在这种情况下,为什么总是执行“else”部分而不是“if”部分。我究竟做错了什么?
我忽略了这可能是一个非常愚蠢的错误。我不确定,任何帮助都会很棒
提前致谢。
【问题讨论】: