如何舍入 Python 中 pandas 数据帧的每个条目(这是一个元组)?
How can I round each entry (which is a tuple) of a pandas dataframe in Python?
import pandas as pd
D = {"a":[(1.0411070751196425, 1.048179051450828),(0.8020630165032718, 0.8884133074952416)],
"b":[(1.0411070751196425, 1.048179051450828),(0.8020630165032718, 0.8884133074952416)],
"c":[(1.0411070751196425, 1.048179051450828),(0.8020630165032718, 0.8884133074952416)],
"d":[(1.0411070751196425, 1.048179051450828),(0.8020630165032718, 0.8884133074952416)]}
D = pd.DataFrame(D)
假设我有这样一个 pandas 数据框,其条目是元组。当我打印出这个数据框时,我怎样才能将每个数字显示到 4 位小数?比如完整的条目是(1.0411070751196425, 1.048179051450828)
,我想显示(1.0411, 1.0482)
.
使用 DataFrame.applymap
通过生成器理解和元组进行元素处理:
D = D.applymap(lambda x: tuple(round(y,4) for y in x))
print (D)
a b c d
0 (1.0411, 1.0482) (1.0411, 1.0482) (1.0411, 1.0482) (1.0411, 1.0482)
1 (0.8021, 0.8884) (0.8021, 0.8884) (0.8021, 0.8884) (0.8021, 0.8884)
import pandas as pd
D = {"a":[(1.0411070751196425, 1.048179051450828),(0.8020630165032718, 0.8884133074952416)],
"b":[(1.0411070751196425, 1.048179051450828),(0.8020630165032718, 0.8884133074952416)],
"c":[(1.0411070751196425, 1.048179051450828),(0.8020630165032718, 0.8884133074952416)],
"d":[(1.0411070751196425, 1.048179051450828),(0.8020630165032718, 0.8884133074952416)]}
D = pd.DataFrame(D)
假设我有这样一个 pandas 数据框,其条目是元组。当我打印出这个数据框时,我怎样才能将每个数字显示到 4 位小数?比如完整的条目是(1.0411070751196425, 1.048179051450828)
,我想显示(1.0411, 1.0482)
.
使用 DataFrame.applymap
通过生成器理解和元组进行元素处理:
D = D.applymap(lambda x: tuple(round(y,4) for y in x))
print (D)
a b c d
0 (1.0411, 1.0482) (1.0411, 1.0482) (1.0411, 1.0482) (1.0411, 1.0482)
1 (0.8021, 0.8884) (0.8021, 0.8884) (0.8021, 0.8884) (0.8021, 0.8884)