我有一列 df ,其中有英尺和英寸的测量值,由相应的特殊字符分隔:
df.altura
0 5' 4"
1 5' 11"
2 5' 10"
3 5' 7"
我要做的是创建一个新列,在其中找到相同的高度但以厘米为单位,也就是说,将第一个数字乘以 0.3048,将第二个数字乘以 0.0254 并将它们相加。如果我将它们分开,最后一个字符仍然存在,然后添加它们我会通过切片、相乘和相加来做到这一点,但为此我必须设法在不留下引号的情况下将它们分开
您可以应用
str.rstrip
或简单的切片来删除"
最终的:然而,在我看来,一个更简单的方法是使用
pandas.Series.str.extract
表达式:\d
-> 字符类,任何数字。+
-> 计数器,1 个或更多*
-> 量词,0 或更多()
-> 捕获组,每个组将形成一个新列。\s
- >空间。该表达式非常简单,涵盖了给定的示例,可以根据需要进行调整,例如是否可能有小数,或者某些行中是否可能缺少英尺或英寸。
这会直接生成一个包含两列的 DataFrame,每个捕获组一列。我们只需将其转换为整数,乘以 0.3048 和 0.0254 并应用于
pandas.DataFrame.sum
行:如前所述,如果可以有小数,我们需要修改表达式: