name breed color height_cm weight_kg date_of_birth height_m
0 Bella Labrador Brown 56242013-07-010.561 Charlie Poodle Black 43242016-09-160.432 Lucy Chow Chow Brown 46242014-08-250.463 Cooper Schnauzer Gray 49172016-09-160.494 Max Labrador Black 59292016-09-160.595 Stella Chihuahua Tan 1822016-09-160.186 Bernie St. Bernard White 77742016-09-160.77技术支持
name breed color height_cm weight_kg date_of_birth height_m bmi
0 Bella Labrador Brown 56242013-07-010.5676.5306121 Charlie Poodle Black 43242016-09-160.43129.7998922 Lucy Chow Chow Brown 46242014-08-250.46113.4215503 Cooper Schnauzer Gray 49172016-09-160.4970.8038324 Max Labrador Black 59292016-09-160.5983.309394技术支持
# Add total col as sum of individuals and family_members
homelessness["total"]= homelessness["individuals"]+ homelessness["family_members"]# Add p_individuals col as proportion of individuals
homelessness["p_individuals"]= homelessness["individuals"]/ homelessness["total"]# See the resultprint(homelessness)技术支持
运行上述代码后,将得到如下结果:
region state individuals family_members state_pop total p_individuals
0 East South Central Alabama 2570.0864.048876813434.00.7481 Pacific Alaska 1434.0582.07351392016.00.7112 Mountain Arizona 7259.02606.071580249865.00.7363 West South Central Arkansas 2280.0432.030097332712.00.8414 Pacific California 109008.020964.039461588129972.00.8...48 South Atlantic West Virginia 1021.0222.018042911243.00.82149 East North Central Wisconsin 2740.02167.058074064907.00.55850 Mountain Wyoming 434.0205.0577601639.00.679技术支持
您不必只局限于给定的数据。您可以向 DataFrame 添加新列。这通常被称为变换、变异或特征工程。
您可以从零创建新列,也常常从其他列派生新列,例如将列相加或更改其单位。
派生新列
使用一份狗的数据集,假设您希望在 DataFrame 中新增一列,将每只狗的身高从厘米换算为米。
等号左侧使用方括号指定要创建的新列名,此处为
height_m。右侧则是计算公式。请注意,原有列与派生列都会出现在您修改后的 DataFrame 中。
添加一列
在这个示例中,您将计算狗的体重指数并将其作为一列添加到 DataFrame 中。BMI 指体质指数,计算方式为体重(千克)除以身高(米)的平方。
同样,新列位于等号左侧,但这一次计算涉及两个列。
通过多步操作添加一列
pandas 的真正威力体现在把您已学到的技能组合起来使用。让我们找出那些又瘦又高的狗的名字。
首先,要定义“瘦”的狗,取 BMI 小于 100 的子集。接着,按身高降序排序,以便最高的“瘦狗”排在顶部。
最后,这次您只保留自己感兴趣的列。
如上所示,
Max是 BMI 低于 100 的狗中最高的一只。交互式示例
在下面的示例中,您向 DataFrame
homelessness添加一个名为total的新列,其值为individuals与family_members两列之和。然后,再向homelessness添加一个名为p_individuals的列,表示各州流浪人口中个人所占的比例。最后,打印homelessness数据框。运行上述代码后,将得到如下结果:
亲自试一试。
也可以查看 DataCamp 的教程:如何在 Pandas 中删除列。
想进一步了解如何在 pandas 中添加新列,请观看我们课程 Data Manipulation with pandas 中的这段视频。
本文内容摘自 DataCamp 的课程 Data Manipulation with pandas,作者为 Maggie Matsui 与 Richie Cotton。