我有一个如下的数据集:
data = { "size":["2","5mm","10mm","12-15mm","16-19mm"] }
dt =pd.DataFrame(data=data)
我需要获取每个单元格的平均值并将其替换为范围(以浮点数表示)吗?
因此,输出是
[2,5,10,13.5,17.5]
我所做的是:
begin = dt["size"].str.replace("mm", "").split("-")[0]
它抱怨有错误,
AttributeError: 'Series' object has no attribute 'split'
另外,我不确定这是否是最佳做法。
获得此字符串范围平均值的最佳方法是什么?
采用:
print(dt['size'].str.rstrip('mm').str.split('-', expand=True).astype(float).mean(1))
或使用:
print(dt['size'].str.rstrip('mm').apply(lambda x: sum(map(int, x.split('-'))) / len(x.split('-'))).astype(float))
输出:
0 2.0
1 5.0
2 10.0
3 13.5
4 17.5
dtype: float64
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句