如何移除Python DataFrame列值中的字符串部分?以时长列为例
移除DataFrame中电影时长列的'min'字符串并转为数值类型
针对你需要清洗电影时长列的需求,这里有几种简洁高效的方法,处理后可以直接将列转为数值类型,满足线性回归分析的要求:
方法1:直接替换字符串(适合格式固定的场景)
如果所有数据都是'XX min'的固定格式,直接用str.replace去掉' min'后缀,再转为整数:
import pandas as pd # 假设DataFrame名为df,目标列名为'movie_duration' df['movie_duration'] = df['movie_duration'].str.replace(' min', '', regex=False).astype(int)
regex=False参数可以避免正则表达式的额外开销,提升处理速度。
方法2:提取数字(格式有波动时更稳健)
如果数据格式偶尔有变化(比如空格数量不一致、额外字符),用正则提取连续数字的方式更可靠:
df['movie_duration'] = df['movie_duration'].str.extract('(\d+)', expand=False).astype(int)
(\d+)会匹配字符串中所有连续的数字序列,提取后直接转为整数类型。
方法3:分割字符串取数字部分
另一种直观的方式是按空格分割字符串,取分割后的第一个元素:
df['movie_duration'] = df['movie_duration'].str.split().str[0].astype(int)
这种方法同样适合固定格式的场景,代码可读性较高。
处理完成后,可以用print(df.dtypes)检查该列是否已转为int或float类型,确保符合后续线性回归的数据分析要求。
内容的提问来源于stack exchange,提问作者Archit Chawla
相关产品推荐
相关产品推荐

