pandas 将英尺-英寸字符串DataFrame列转换为厘米

0s0u357o  于 2023-01-19  发布在  其他
关注(0)|答案(1)|浏览(136)

我有一栏篮球运动员身高:

0       6-10
1        6-9
2        7-2
3        6-1
4        6-6
        ... 
4545    6-11
4546     7-1
4547     6-1
4548     7-1
4549     6-3

我想将值从英尺转换为厘米。我进行了拆分:player_data['height'].str.split('-'),并收到一系列具有单独英尺和英寸的阵列:

0       [6, 10]
1        [6, 9]
2        [7, 2]
3        [6, 1]
4        [6, 6]
         ...   
4545    [6, 11]
4546     [7, 1]
4547     [6, 1]
4548     [7, 1]
4549     [6, 3]

现在我尝试将值转换为float:

df = player_data['height'].str.split('-').astype(float)

但我收到一个错误:ValueError: setting an array element with a sequence.我做错了什么?

mwngjboj

mwngjboj1#

假设您的最终目标是将"英尺-英寸"值转换为cm,我将执行以下操作:

df['height_cm'] = (df['height'].str.extract('(\d*)-(\d*)')
                   .apply(pd.to_numeric, errors='coerce') # or .astype(int)
                   .mul([30.48, 2.54]).sum(axis=1)
                  )

输出:

height  height_cm
0      6-10     208.28
1       6-9     205.74
2       7-2     218.44
3       6-1     185.42
4       6-6     198.12
4545   6-11     210.82
4546    7-1     215.90
4547    6-1     185.42
4548    7-1     215.90
4549    6-3     190.50

相关问题