You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

课程作业中DataFrame仅显示表头问题求助

问题分析与修正

你的代码存在几个关键错误,导致所有数据行被删除,最终只剩表头:

错误1:inplace=True 与赋值操作冲突

使用inplace=True时,Pandas方法会直接修改原DataFrame,返回值为None。若同时给列赋值,会把整列设为None,后续dropna()会删除所有行。比如:

ds['Size'] = ds['Size'].replace("Varies with Device", np.nan, inplace = True)
ds['Type']= ds['Type'].replace("Free", np.nan, inplace = True)

正确做法是二选一:要么保留inplace=True不赋值,要么去掉inplace=True保留赋值:

# 方式一:保留赋值,去掉inplace
ds['Size'] = ds['Size'].replace("Varies with Device", np.nan)
# 方式二:保留inplace,不赋值
ds['Type'].replace("Free", np.nan, inplace=True)

错误2:Rating筛选逻辑完全颠倒

作业要求删除Rating不在1-5范围内的行,但你当前代码是找出符合1-5的行索引并删除,等于留下了不符合条件的行(原始数据中Rating基本都在1-5区间,这一步后数据已所剩无几)。正确逻辑是找出不符合条件的索引再删除:

# 定位Rating不在1-5的行索引
indexrating = ds[(ds['Rating'] < 1) | (ds['Rating'] > 5)].index
ds.drop(indexrating, inplace=True)

错误3:多余的headers代码

你创建的headers DataFrame从未使用,完全可以删除,不影响数据处理逻辑。

修正后的完整代码

import pandas as pd
import numpy as np

# 加载数据集
ds = pd.read_csv('googleplaystore.csv')

# 处理Size列:替换特殊值为NaN
ds['Size'] = ds['Size'].replace("Varies with Device", np.nan)
# 删除含空值的记录
ds = ds.dropna()

# 移除Size列的M、K后缀并转换为数值型
ds['Size'] = ds['Size'].str.replace("M", "", regex=True)
ds['Size'] = ds['Size'].str.replace("k", "", regex=True)
ds['Size'] = ds['Size'].astype(float)

# 处理Installs列:移除+号并转整数
ds['Installs'] = ds['Installs'].str.replace("+", '', regex=True)
ds['Installs'] = ds['Installs'].astype(int)

# 转换Reviews为浮点型
ds['Reviews'] = ds['Reviews'].astype(float)

# 处理Price列:移除$符号并转数值型
ds['Price'] = ds['Price'].str.replace("$", "", regex=True)
ds['Price'] = ds['Price'].astype(float)

# 删除Rating不在1-5范围内的行
indexrating = ds[(ds['Rating'] < 1) | (ds['Rating'] > 5)].index
ds.drop(indexrating, inplace=True)

# 删除Type为Free的行(直接用布尔索引更高效)
ds = ds[ds['Type'] != 'Free']

# 显示处理后的DataFrame
display(ds)

处理Type列时,直接用布尔索引ds['Type'] != 'Free'筛选,比替换为NaN再删除空值更直观高效。

内容的提问来源于stack exchange,提问作者jmlabbe158

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 02:56:52