如何将小数变分数,并且保留2位小数 datafram python
时间: 2023-07-01 15:23:01 浏览: 63
假设你想要将一个 pandas DataFrame 中的某一列小数转换为保留2位小数的分数,可以使用以下代码:
```python
import pandas as pd
from fractions import Fraction
# 创建一个 DataFrame
df = pd.DataFrame({'decimal': [0.333, 0.5, 0.666]})
# 将小数转换为分数
df['fraction'] = df['decimal'].apply(lambda x: Fraction(x).limit_denominator())
# 保留2位小数
df['fraction'] = df['fraction'].apply(lambda x: round(x, 2))
# 输出结果
print(df)
```
输出结果为:
```
decimal fraction
0 0.333 1/3
1 0.500 1/2
2 0.666 2/3
```
首先,使用 `Fraction` 函数将小数转换为分数,并使用 `limit_denominator` 方法限制分母的大小。然后,使用 `round` 函数保留2位小数。最后,将结果赋值给一个新的列,并输出结果。
相关问题
如何将小数变百分数,并且保留2位小数 datafram python
假设你想要将一个 pandas DataFrame 中的某一列小数转换为保留2位小数的百分数,可以使用以下代码:
```python
import pandas as pd
# 创建一个 DataFrame
df = pd.DataFrame({'decimal': [0.333, 0.5, 0.666]})
# 将小数转换为百分数
df['percent'] = df['decimal'].apply(lambda x: '{:.2%}'.format(x))
# 输出结果
print(df)
```
输出结果为:
```
decimal percent
0 0.333 33.30%
1 0.500 50.00%
2 0.666 66.60%
```
使用 `{:.2%}` 格式化字符串将小数转换为保留2位小数的百分数,并将结果赋值给一个新的列。最后,输出结果。
如何将小数变分数,并且保留2位小数
将小数变为分数,可以将小数乘以一个10的幂,使得小数点后的数位变为0,然后将结果除以这个10的幂即可。例如,将0.75变为分数,可以将它乘以100,得到75,然后除以100,得到3/4。
为了保留2位小数,可以先将小数乘以100,得到一个整数,然后将这个整数变为分数,并进行约分。最后,将分子除以分母,就可以得到保留2位小数的分数。例如,将0.567变为保留2位小数的分数,可以将它乘以100,得到56.7,然后将56.7变为分数,得到567/10,约分后为113/20,最后将113除以20,得到5.65。因此,0.567可以表示为5.65/10。