Menu
CoddyTech

修改数据

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

要覆盖特定单元格、列或行的数据,可以为其赋一个新值:

df["existing_col"] = new_value            # 修改列
df.loc[index] = new_value                 # 修改行
df.loc[index, "existing_col"] = new_value # 修改单元格

要更新满足特定条件的行中的列值,请使用相同的条件,就像我们在之前的课中使用 .loc 方法时学到的那样:

df.loc[df['col'] > 5, 'existing_col'] = new_value
 
df.loc[(df['col'] <= 5) & (df['col'] > 2), 'existing_col'] = new_value

修改现有行时,使用 loc 关键字很重要。修改数据框时,如果不使用 loc,你处理的通常是数据的副本 ,而不是原始 数据。例如:

df[(df['col'] <= 5) & (df['col'] > 2)]["existing_col"] = new_value

这里,条件返回的是数据框的副本,而不是原始数据。

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
  • 将 IS_VALID 列和 UTILIZATION 列中的单元格除外的所有单元格修改为值 MODIFIED,条件是 IS_VALID 等于 1 且 UTILIZATION 小于 0.4。

将结果存储在 df 变量中。

亲手试试

# 已导入 pandas,并将其命名为 pd
df = pd.read_csv("./stats.csv")
for column in df.columns:
    if column not in ["IS_VALID", "UTILIZATION"]:
        df[column] = df[column].astype(object)
# 在下方编写你的代码

Pandas 数据分析中的所有课

自己练习: Python 在线编译器