我在Excel中有一列数字...例如
1.2345.678
我想从所有数据中删除第二个小数点。
这可以通过从csv导入到数据帧吗?
感谢。
答案 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('.', '')])