Pandas相反的条函数

Pandas opposite strip function

我有一个数据集,其数据如下所示:

0         2
1         3
2       2 ½
3       3 ½
4       2 ½
       ... 
1532    1 ½
1533      1
1534    NaN
1535    NaN
1536    NaN

我正在尝试将所有“1/2”分数转换为十进制数。 2 1/2 -> 2.5。 我已经尝试了很多不同的方法。最后一个是剥离数据框并将分数替换为十进制数。

0          [2]
1          [3]
2       [2, ½]
3       [3, ½]
4       [2, ½]
         ...  
1532    [1, ½]
1533       [1]
1534       NaN
1535       NaN
1536       NaN

但是,我不能只更改分数。它总是改变整个领域。看起来像这样:

0       NaN
1       NaN
2        .5
3        .5
4        .5
       ... 
1532     .5
1533    NaN
1534    NaN
1535    NaN
1536    NaN

我使用了这个代码:

file2["room"] = file2["room"].str[1].replace("½", ".5")

所以现在我有两个问题。第一个,如何只替换小数而不是整个字段,第二个问题是,我怎样才能将它们重新放在一起?

也许我的做法是完全错误的。我将不胜感激其他一些解决方案。

尝试将此应用于问题陈述的第一个数据帧:

file2["room"] = file2["room"].str.replace(" ½", ".5")

对你有用吗?

如果在½之前有一个space使用

 file2["room"] = file2["room"].str.replace("½", "\s.5", regex=True)

否则使用

file2["room"] = file2["room"].str.replace("½", ".5", regex=True)