【发布时间】:2021-02-15 08:48:48
【问题描述】:
我必须使用 python 来清理数据以便于分析,但是在这种情况下我不能使用 pandas 要求和期望如下:
actual = preprocess([
('Survived', 'Pclass', 'Name', 'Gender', 'Age', 'Fare'),
('no', '3', 'Braund Mr. Owen Harris', 'male', '22', '7.25'),
('Dead', '3', 'Braund Ms. Maria', 'Female', '21', ''),
('Yes', '1', 'Cumings Mrs. John Bradley (Florence Briggs Thayer)', 'F', '38', '71.28'),
('', '3', 'Vander Planke Miss. Augusta', 'female', '', ''),
('Dead', '4', 'Lennon Mr. Denis', 'male', '13', '15.5')])
expected = (
('Survived', 'Pclass', 'Name', 'Gender', 'Age', 'Fare'),
[
(False, 3, 'Braund Mr. Owen Harris', 'male', 22.0, 7.25),
(False, 3, 'Braund Ms. Maria', 'female', 21.0, 25.0),
(True, 1, 'Cumings Mrs. John Bradley (Florence Briggs Thayer)', 'female', 38.0, 71.28),
('', 3, 'Vander Planke Miss. Augusta', 'female', '', 25.0),
(False, 4, 'Lennon Mr. Denis', 'male', 13.0, 15.5)]
]
)
你能在这种情况下给一些建议吗?
【问题讨论】:
-
信息不足。为什么第 4 和第 5 条数据线没有包含在预期输出中?将第一列转换为布尔值的规则是什么?等等……
-
抱歉,我可能错过了最后一行。规则是:(1) Survived - boolean,(2) Plass - int,(3) Name - string,(4) Gender - string(仅限男性和女性),(5) age - float,(6) fare -浮动
-
我可以确定第一列将被转换为布尔值。我要问的是您将字符串更改为 True 或 False 的规则。顺便说一句,您的预期输出中缺少两行,而不是一行。
-
True 为 Yes,错误为 no/dead。 ('', 3, 'Vander Planke Miss. Augusta', 'female', '', 25.0), (False, 4, 'Lennon Mr. Denis', 'male', 13.0, 15.5)])
-
缺失值替换的规则是什么?在您的示例中,缺少的“票价”已替换为“25.0”。这是一般规则吗?缺少年龄或缺少“幸存”状态是怎么回事?
标签: python csv data-cleaning