如何将逗号分隔的数字从数据帧转换为数字并获取平均值

How to convert comma separated numbers from a dataframe to to numbers and get the avg value

我正在处理一个数据集,其中一列的数字用逗号分隔。 我想将值转换为整数并获取它们的平均值以替换为当前异常。

例如:50,45,30,20 我想取平均值并用当前值替换它

您可以简单地定义一个函数来解压缩这些值,然后获取这些值的平均值。

def get_mean(x):
    #split into list of strings
    splited = x.split(',')
    #Transform into numbers
    y = [float(n) for n in splited]
    return sum(y)/len(y)

#Apply on desired column
df['col'] = df['col'].apply(get_mean)
from numpy import mean
data.apply(lambda x: mean(list(map(lambda y: int(y.strip()), x.split(",")))))

您可以按照 GabrielBoehme 的建议应用自定义函数,但如果您可以控制数据导入,那么在数据导入阶段处理问题可能会更简洁一些。

import pandas as pd
data = pd.read_csv('foobar.csv', sep=',', thousands=',')

显然,您需要确保正确引用所有内容,以便正确解析 CSV。

我的解释较长,这里的其他解释可能更好...但如果您是 python 的新手,这可能更容易理解 python。

cell_num = "1,2,3,4,5,6,7"

#Splitting the numbers by , and making a list of them
cell_numbers = cell_num.split(",")

#Run loop to sum the values in the list
sum_num = 0
for num in cell_numbers:
    sum_num += int(num)

#getting the mean
mean = int(sum_num) / len(cell_numbers)

#now printing your final number
print(mean)

如果您有小数...请务必将 int 与 float 交换。