【机器学习】DataFrame的常用操作

刚入门机器学习时,对 DataFrame 的基本操作不够熟练,导致经常有代码写得过于繁琐,或者不能一次跑通……希望能通过本文,积累一些常用操作的写法,形成肌肉记忆。

增加数据或增加列。

  • 从字典创建
data = {'Name':['Alice', 'Bob'], 'Score':[80, 95]}
df = pd.DataFrame(data)
  • 直接添加列
df['Age'] = [20, 21]
  • 使用 assign 链接一列
df = df.assign(City=['Beijing', 'Shanghai'])
  • 合并两表
df_new = pd.concat([df1, df2], axis=0)

删除行、列或空值。

  • 删掉某列
df = df.drop(['Age'], axis=1)
  • 删掉某行
df = df.drop(index=x-1)	# 删掉第 x 行
  • 删除空值
df = df.dropna() # 删掉任何含有空值的行
df = df.dropna(subset=['Score']) # 只看 Score 列有没有空值
  • 删除重复数据
df = df.drop_duplicates()

  • 修改列名
df = df.rename(columns={'Name': 'Student_Name', 'Score': 'Grade'})
  • 修改特定位置数值
# 把名字叫 Alice 的人的分数改为 95
df.loc[df['Name'] == 'Alice', 'Score'] = 95
  • 批量修改
df['Score'] = df['Score'].apply(lambda x: x + 5) # 所有人加5分
df['Sex'] = df['Sex'].map({'male': 0, 'female': 1}) # 映射替换
  • 类型转换
df['Score'] = df['Score'].astype(float)

  • loc 与 iloc
df.iloc[0:5, 0:3] # 前5行,前3列
  • 条件查询
df[(df['Score'] > 80) & (df['Age'] < 22)]
  • 快速查询
df.query("Score > 80 and Name == 'Alice'")
  • 基本信息
df.info()     # 看缺失值和类型
df.describe() # 看均值、中位数等
posted @ 2026-03-03 20:56  Alkaid16  阅读(0)  评论(0)    收藏  举报