Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从大熊猫中的浮点数中去除尾随小数点_Python_Pandas_Datagram - Fatal编程技术网

Python 从大熊猫中的浮点数中去除尾随小数点

Python 从大熊猫中的浮点数中去除尾随小数点,python,pandas,datagram,Python,Pandas,Datagram,我的数据集中的所有列似乎都是浮点数。 有些包含像“20”这样的值或者“11” 如何有选择地快速删除点和空格,而不影响列中的其他值,如“24.4”或“12.5” 我试过几种解决办法,但都不管用 我的目标是改变,例如,“12”到“12”,对于每个单元格中的每个值,其中“.”出现。您可以使用regex来替换ie df.replace('\.(?!\d)','',regex=True) 如果你有一个像这样的数据帧 df = pd.DataFrame(['12.','13.','14.1','15.5

我的数据集中的所有列似乎都是浮点数。 有些包含像“20”这样的值或者“11”

如何有选择地快速删除点和空格,而不影响列中的其他值,如“24.4”或“12.5”

我试过几种解决办法,但都不管用


我的目标是改变,例如,“12”到“12”,对于每个单元格中的每个值,其中“.”出现。

您可以使用regex来替换ie

df.replace('\.(?!\d)','',regex=True) 
如果你有一个像这样的数据帧

df = pd.DataFrame(['12.','13.','14.1','15.5'])
df.replace('\.(?!\d)','',regex=True) # inplace = True if you want to change main dataframe.
0 0 12 1 13 2 14.1 3 15.5
如果列包含字符串:

>>> a
   0     1
0  1  12. 
1  2  14.5
2  3  15. 
3  4  16.3
>>> a[1]=[i.replace('. ', '') for i in a[1]]
>>> a
   0     1
0  1    12
1  2  14.5
2  3    15
3  4  16.3
如果存在浮点,则可以创建混合类型(int和float)的新列表:

但您不能在数据框中执行此操作:

>>> a[1]=[int(i) if i.is_integer() else float(i) for i in a[1]]
>>> a
     0     1
0  1.0  12.0
1  2.0  14.5
2  3.0  15.0
3  4.0  16.3

您可以为熊猫设置自定义浮点格式功能,例如:

>>> import pandas as pd
>>> df = pd.DataFrame({'col1':[1, 2, 3], 'col2':[2.0, 1.0, 4.1]})
>>> pd.set_option('display.float_format', lambda x: ('%f' % x).rstrip('.0'))
>>> df
   col1  col2
0     1     2
1     2     1
2     3   4.1

我非常怀疑这种情况,但如果你能向我们展示你的数据,那会有所帮助。它们不是字符串,而是浮点数。他说“快速删除点和空格”,我希望可能是字符串
>>> a[1]=[int(i) if i.is_integer() else float(i) for i in a[1]]
>>> a
     0     1
0  1.0  12.0
1  2.0  14.5
2  3.0  15.0
3  4.0  16.3
>>> import pandas as pd
>>> df = pd.DataFrame({'col1':[1, 2, 3], 'col2':[2.0, 1.0, 4.1]})
>>> pd.set_option('display.float_format', lambda x: ('%f' % x).rstrip('.0'))
>>> df
   col1  col2
0     1     2
1     2     1
2     3   4.1