如何在 pandas 数据框中捕获连字符分隔数字的平均值?
How to capture mean of hyphen seperated numbers in a pandas dataframe?
我有一个PandasDataFrame
年龄段的吸毒者。我的问题:某些年龄段由连字符分隔,例如 '50-64'
。我想获取连字符分隔数字的平均值并用它替换单元格。
1.Is 有没有办法用某种循环或方法来做到这一点?我不想简单地硬编码 drugs.loc[10,'age'] = np.mean(55+64)
2.For 未来的参考,有没有更优雅的方式来处理用连字符分隔的数字的数据?
input:
drugs.age
output:
0 12
1 13
2 14
3 15
4 16
5 17
6 18
7 19
8 20
9 21
10 22-23
11 24-25
12 26-29
13 30-34
14 35-49
15 50-64
16 65+
input:
drugs.age.dtype
output:
dtype('O')
您可以使用:
replace
+
为空 string
split
值到 DataFrame
- 通过
astype
将所有值转换为 float
- 通过
DataFrame.mean
获取每行的平均值
drugs['age'] = drugs['age'].str.replace('+','')
.str.split('-', expand=True)
.astype(float)
.mean(axis=1)
print (drugs)
age
0 12.0
1 13.0
2 14.0
3 15.0
4 16.0
5 17.0
6 18.0
7 19.0
8 20.0
9 21.0
10 22.5
11 24.5
12 27.5
13 32.0
14 42.0
15 57.0
16 65.0
如果某些值是数字并且需要某些字符串,请先将所有值转换为字符串:
drugs['age'] = drugs['age'].astype(str)
.str.replace('+','')
.str.split('-', expand=True)
.astype(float)
.mean(axis=1)
我有一个PandasDataFrame
年龄段的吸毒者。我的问题:某些年龄段由连字符分隔,例如 '50-64'
。我想获取连字符分隔数字的平均值并用它替换单元格。
1.Is 有没有办法用某种循环或方法来做到这一点?我不想简单地硬编码 drugs.loc[10,'age'] = np.mean(55+64)
2.For 未来的参考,有没有更优雅的方式来处理用连字符分隔的数字的数据?
input:
drugs.age
output:
0 12
1 13
2 14
3 15
4 16
5 17
6 18
7 19
8 20
9 21
10 22-23
11 24-25
12 26-29
13 30-34
14 35-49
15 50-64
16 65+
input:
drugs.age.dtype
output:
dtype('O')
您可以使用:
replace
+
为空string
split
值到DataFrame
- 通过
astype
将所有值转换为 - 通过
DataFrame.mean
获取每行的平均值
float
drugs['age'] = drugs['age'].str.replace('+','')
.str.split('-', expand=True)
.astype(float)
.mean(axis=1)
print (drugs)
age
0 12.0
1 13.0
2 14.0
3 15.0
4 16.0
5 17.0
6 18.0
7 19.0
8 20.0
9 21.0
10 22.5
11 24.5
12 27.5
13 32.0
14 42.0
15 57.0
16 65.0
如果某些值是数字并且需要某些字符串,请先将所有值转换为字符串:
drugs['age'] = drugs['age'].astype(str)
.str.replace('+','')
.str.split('-', expand=True)
.astype(float)
.mean(axis=1)