如何计算DataFrame中含逗号分隔数字字符串列的行均值?
计算DataFrame中逗号分隔数字字符串列的每行均值
假设你有一个pandas DataFrame,其中某列的内容是由逗号分隔的数字字符串,需要计算每行所有数值的均值,示例数据和预期结果如下:
示例输入
"COLUMN 1" 2,18,10 10 80,20
预期输出
"MEAN" 10 10 50
解决方案
可以通过apply方法结合自定义函数实现需求:
import pandas as pd # 构建示例DataFrame df = pd.DataFrame({"COLUMN 1": ["2,18,10", "10", "80,20"]}) def get_row_mean(s): # 分割字符串并转换为数值列表 num_list = list(map(float, s.split(","))) # 计算均值 return sum(num_list) / len(num_list) # 生成均值列 df["MEAN"] = df["COLUMN 1"].apply(get_row_mean) # 查看结果 print(df["MEAN"])
运行后输出结果:
0 10.0 1 10.0 2 50.0 Name: MEAN, dtype: float64
异常情况处理(可选)
如果数据中存在空字符串、非数字内容等异常情况,可以给函数添加异常处理逻辑,避免程序报错:
def get_row_mean(s): try: num_list = list(map(float, s.split(","))) return sum(num_list) / len(num_list) if num_list else None except ValueError: # 遇到非数字内容时返回None return None
内容的提问来源于stack exchange,提问作者tgrondona
相关产品推荐
相关产品推荐

