如何在Pandas中为多值价格列创建均值列?
处理价格列表生成均值列的解决方案
直接使用pandas.Series.apply()结合简单的自定义逻辑即可,无需将列表转为DataFrame:
示例代码
import pandas as pd # 模拟你的数据结构 df = pd.DataFrame({ 'pricerange_All': [['16.51'], ['690.94', '690.76'], ['200'], ['100.5', '99.5']] }) # 生成均值列 df['mean_price'] = df['pricerange_All'].apply( lambda x: sum(float(num) for num in x) / len(x) )
逻辑说明
- 遍历
pricerange_All列的每个列表元素,将列表中的字符串价格转为浮点型 - 对列表内的数值求和后除以元素个数,得到均值
- 单元素列表会直接返回该元素本身,双元素列表则返回两者的平均值
针对空列表的兼容处理(可选)
如果数据中存在空列表,可添加判断避免报错:
df['mean_price'] = df['pricerange_All'].apply( lambda x: sum(float(num) for num in x) / len(x) if x else None )
内容的提问来源于stack exchange,提问作者YC Tseng
相关产品推荐
相关产品推荐

