Menu
CoddyTech

自定义修改

Coddy Pandas 数据分析 课程的第 13 课,共 19 课。

要进行自定义修改,请使用 .apply 方法,并传入 lambda 或 function。例如,求某一列中每个数字的平方:

df['num_squared'] = df['num'].apply(lambda x: x**2)

也可以将该列与自身相乘来实现:

df['num_squared'] = df['num'] * df['num']

要给每行的值加上 2:

df["add_two"] = df['num'].apply(lambda x: x+2)
df["add_two"] = df['num'] + 2

要将 Series 中的每个值替换为另一个值,请使用 .map 方法,并传入函数、字典或 Series。

例如,如果我们要将水果名称替换为数字:

fruits_to_num = {"apple": 1, "mango": 2, "grape": 3}
df["fruits"] = df["fruits"].map(fruits_to_num)

.map 和 .apply 都可以接收函数:

df['num_squared'] = df['num'].apply(lambda x: x**2)
df['num_squared'] = df['num'].map(lambda x: x**2)

如需进一步了解它们的区别,可以阅读这篇文章。

 

challenge icon

挑战

简单

CSV 文件 stats.csv 包含统计信息。

以下是文件的前 5 行:

ID,COUNTRY,COLOR,SKILL,SKILL_POINTS,UTILIZATION,IS_VALID,CATEGORY
1,France,Signal violet,marksmanship,14,0.1924,1,SHOW
2,Solomon Islands,Pearl violet,crocheting,4,0.6108,1,TREE
3,Germany,Bottle green,calligraphy,12,0.88646,0,SHOW
4,Mauritania,Fawn brown,paper cutting,9,0.058,1,JAPE
  • 将 CATEGORY 的值替换为:{"SHOW": 0, "TREE": 1, "JAPE": 2, "GHUP": 3, "PLQR": 4}。
  • 创建一个名为 SKILL_MASTERY 的新列。使用以下公式填充此列:将 SKILL_POINTS 列和 UTILIZATION 列中的值相乘。如果结果大于 5,则将其除以 4;否则,将其除以 2。最后,将 IS_VALID 列中的值加到结果上。
  • 根据 SKILL_MASTERY 按升序排列结果。

将结果存储在 df 变量中。

亲手试试

# 已经将 pandas 导入为 pd
df = pd.read_csv("./stats.csv")
# 在下方编写你的代码

Pandas 数据分析中的所有课

自己练习: Python 在线编译器