首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将脚转换为CM

将脚转换为CM
EN

Stack Overflow用户
提问于 2021-04-29 09:30:44
回答 3查看 824关注 0票数 3
代码语言:javascript
复制
    Name                  Team      Number  Position    Age    Height   Weight  College           Salary
1   Jae Crowder     Boston Celtics  99.0    SF          25.0    6-6      235.0  Marquette       6796117.0
2   John Holland    Boston Celtics  30.0    SG  2       7.0      6-5     205.0  Boston University   NaN

嗨,我有这个表,我想把新列中的高度从脚转换成CM,高度列RN也不是浮点数,所以我需要先提取它,然后对数字进行操作。

德克斯

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-04-29 10:17:04

使用str函数和点

一种可能更快的方法(矢量化)是使用str函数。

您想要执行的操作可以通过在高度列中的两个元素和2个转换乘数之间应用一个点积来完成。

英尺,英寸@ 30.48,2.54 =英尺*30.48+英寸*2.54

columns.

  • Finally,

  • str.split将字符串拆分为一个列表。

  • 然后apply(pd.Series)将列表拆分为2个单独的

astype(int),将每个单元格转换为int

  • ,最后,dot使用转换multipliers.

在每一行上执行点积

代码语言:javascript
复制
conversions = [30.48, 2.54]
df['new'] = df['Height'].str.split('-').apply(pd.Series).astype(int).dot(conversions)
代码语言:javascript
复制
0    198.12
1    167.64
2     35.56
dtype: float64

使用lambda函数和点

如果您对lambda函数比较满意,下面是相同的代码-

代码语言:javascript
复制
conversions = [30.48, 2.54]

df['new'] = df['Height'].apply(lambda x: pd.Series(map(int, x.split('-'))).dot(conversions))
代码语言:javascript
复制
0    198.12
1    167.64
2     35.56
dtype: float64
票数 1
EN

Stack Overflow用户

发布于 2021-04-29 09:55:22

看起来是一个很好的步骤,首先将你的高度列分成两(英尺+英寸),然后从那里开始:

代码语言:javascript
复制
df['feet'] = df['Height'].apply(lambda x: int(x.split('-')[0]))
df['inches'] = df['Height'].apply(lambda x: int(x.split('-')[1]))
df['feet_in_cm'] = df['feet'] * 30.48
df['inches_in_cm'] = df['inches'] * 2.54
df['height_in_cm'] = df['feet_in_cm'] + df['inches_in_cm']
票数 0
EN

Stack Overflow用户

发布于 2021-04-29 09:56:02

假设列中的唯一值是具有3个字符(number_of_feet、'-‘、number_of_inches)的字符串,那么解决方案可能如下所示:

代码语言:javascript
复制
your_table['Height'].apply(lambda x: int(x.split('-')[0])*30.48 + int(x.split('-')[1])*2.54)

但是,正如我从表的第二行中看到的那样,您的字符串中有一些额外的字符,这可能需要额外的预处理(在本例中是空格,但它们不会影响代码--字符串应该很容易被更改为整数)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67314664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档