【机器学习】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() # 看均值、中位数等

浙公网安备 33010602011771号