如何使用Pandas删除数字中的2个小数点之一

时间:2015-06-01 09:38:25

标签: python pandas dataframe

我在Excel中有一列数字...例如

1.2345.678 

我想从所有数据中删除第二个小数点。

这可以通过从csv导入到数据帧吗?

感谢。

3 个答案:

答案 0 :(得分:1)

以下内容将保留所有数字,只需删除您想要的最终小数点:

In [80]:
t="""val
1.2345.678"""
df = pd.read_csv(io.StringIO(t))
df

Out[80]:
          val
0  1.2345.678

In [94]:    
(df['val'].str[0:df['val'].str.rfind('.')[0]]+df['val'].str.split('.').str[-1]).astype(np.float64)

Out[94]:
0    1.234568
dtype: float64

请注意,上面显示的是显示截断,存在完整值

所以上面将你的字符串从开始切割到最后一个小数点的位置,然后我拆分字符串并添加最后一个分割,然后你可以使用astype

转换为浮点数

修改

我认为更好的方法是第二部分不要拆分,而是重复使用rfind进行定位:

In [113]:
df['val'].str[0:df['val'].str.rfind('.')[0]]+df['val'].str[df['val'].str.rfind('.')[0]+1:]

Out[113]:
0    1.2345678
Name: val, dtype: object

答案 1 :(得分:0)

y2 = df['Press P'].str.split('.').str[:-1].str.join('.') 

我得到了解决方案。

感谢您的支持。

乔伊

答案 2 :(得分:0)

我根本不喜欢这样,我会在Excel中更改数据。但这是假设你不能这样做:

'.'.join([a[:a.index('.')], a[a.index('.'):].replace('.', '')])