我可以改变数值的小数点分别在Pandas?

qv7cva1a  于 2022-11-27  发布在  其他
关注(0)|答案(2)|浏览(115)

我希望df的每个值都有不同的小数点,就像这样

year   month   day 
count   1234   5678    9101
mean    12.12  34.34   2.3456 
std     12.12  3.456   7.789

我找了一个方法来改变特定值的小数点,但没有找到方法。所以这就是我得到的

year        month       day 
count   1234.0000   5678.0000   9101.0000
mean    12.1200     34.3400     2.3456 
std     12.1200     3.4560      7.7890

我知道round()方法,但是我不知道如何将它赋给每一个值,而不是整行或整列。有没有可能分别改变值?

kkbh8khc

kkbh8khc1#

您可以更改浮点显示:

pd.options.display.float_format = '{:,6f}'.format

#if necessary convert to floats
df = df.astype(float)

或者将格式更改为6个零:

df = df.astype(float).applymap('{:.6f}'.format)
uplii1fm

uplii1fm2#

format方法是正确的,但我认为您要寻找的是:
输入文件data.txt

year        month       day 
count   1234.0000   5678.0000   9101.0000
mean    12.1200     34.3400     2.3456 
std     12.1200     3.4560      7.7890

格式化(请参阅格式化迷你语言)

import numpy as np
import pandas as pd

file = "/path/to/data.txt"
df = pd.read_csv(file, delim_whitespace=True)

# update all columns with data type number
# use the "n" format
df.update(df.select_dtypes(include=np.number).applymap('{:n}'.format))
print(df)

输出量

year  month     day
count   1234   5678    9101
mean   12.12  34.34  2.3456
std    12.12  3.456   7.789

相关问题