Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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 - Fatal编程技术网

Python 如何截断小的浮点值

Python 如何截断小的浮点值,python,pandas,Python,Pandas,我使用pandas.DataFrame.round来截断数据帧上的列,但是我有一列p值,它们的值很小,被舍入为零。例如,下面的所有值都四舍五入为0 p-value 2.298564e-17 6.848231e-91 1.089847e-10 9.390048e-04 5.628517e-35 4.621786e-19 4.601818e-54 9.639073e-19 我想要像这样的东西 p-value 2.29e-17 6.84e-91 1.08e-10

我使用pandas.DataFrame.round来截断数据帧上的列,但是我有一列p值,它们的值很小,被舍入为零。例如,下面的所有值都四舍五入为0

p-value
2.298564e-17
6.848231e-91   
1.089847e-10  
9.390048e-04   
5.628517e-35  
4.621786e-19   
4.601818e-54 
9.639073e-19  
我想要像这样的东西

p-value
2.29e-17
6.84e-91   
1.08e-10  
9.39e-04   
5.62e-35  
4.62e-19   
4.60e-54 
9.63e-19

不完全截断,但相当圆:

df['p-value'].apply(lambda x: f'{x:.2e}')
输出:

0    2.30e-17
1    6.85e-91
2    1.09e-10
3    9.39e-04
4    5.63e-35
5    4.62e-19
6    4.60e-54
7    9.64e-19
Name: p-value, dtype: object

不完全截断,但相当圆:

df['p-value'].apply(lambda x: f'{x:.2e}')
输出:

0    2.30e-17
1    6.85e-91
2    1.09e-10
3    9.39e-04
4    5.63e-35
5    4.62e-19
6    4.60e-54
7    9.64e-19
Name: p-value, dtype: object
Numpy具有这方面的功能

data = """p-value
2.298564e-17
6.848231e-91   
1.089847e-10  
9.390048e-04   
5.628517e-35  
4.621786e-19   
4.601818e-54 
9.639073e-19"""
a = [x for x in data.split("\n")]
df = pd.DataFrame({"p-value":a[1:]})
df["p-value"] = df["p-value"].astype(np.float)
df["p-value"].apply(lambda x: np.format_float_scientific(x, precision=2))
输出

Numpy具有这方面的功能

data = """p-value
2.298564e-17
6.848231e-91   
1.089847e-10  
9.390048e-04   
5.628517e-35  
4.621786e-19   
4.601818e-54 
9.639073e-19"""
a = [x for x in data.split("\n")]
df = pd.DataFrame({"p-value":a[1:]})
df["p-value"] = df["p-value"].astype(np.float)
df["p-value"].apply(lambda x: np.format_float_scientific(x, precision=2))
输出