簡體   English   中英

數據框中的列未以指定的小數精度打印

[英]Column in Dataframe not printed with specified decimal precision

我創建了一個腳本,用於從 CSV 文件中讀取數據、規范化列並打印出結果。

即使我應用了相同的格式化程序,為什么#friends_normalized顯示與其他列不同?

只有當我打印數據框時才會出現問題。 numpy 數組打印得很好。

import pandas as pd
import numpy as np

pd.set_option('display.max_rows', 500)
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)
np.set_printoptions(precision=10)
np.set_printoptions(suppress=True)
np.set_printoptions(formatter={'float': '{: 0.10f}'.format})

df = pd.read_csv("data.csv")


def normalize(name):
    y = np.copy(df[name]).astype(np.float64)
    y -= y.min()
    y /= y.max()
    df[name + '_normalized'] = y
    print(np.sort(y))

normalize('#followers')
normalize('#friends')
normalize('#listed')
normalize('#statuses')

print(df[['#followers','#friends','#listed','#statuses','#followers_normalized','#friends_normalized','#listed_normalized','#statuses_normalized']])

輸出:

[ 0.0000000000  0.0000000000  0.0000000178 ...  0.6430196814  0.9648524716
  1.0000000000]
[ 0.0000000000  0.0000000000  0.0000000000 ...  0.5465560772  0.5478126126
  1.0000000000]
[ 0.0000000000  0.0000000000  0.0000000000 ...  0.2394336344  0.4004638550
  1.0000000000]
[ 0.0000000000  0.0000000000  0.0000000000 ...  0.7691165372  0.8793119281
  1.0000000000]
      #followers  #friends  #listed  #statuses  #followers_normalized  #friends_normalized  #listed_normalized  #statuses_normalized
0         121699         1     1951       1420               0.001083         8.988093e-07            0.003418              0.002037
1           5268       980      433       5895               0.000047         8.808332e-04            0.000758              0.008458
2           3909       215       28       3429               0.000035         1.932440e-04            0.000049              0.004920
3           1796      1002       42       4844               0.000016         9.006070e-04            0.000074              0.006950
4           2227       188      155       1440               0.000020         1.689762e-04            0.000272              0.002066
...          ...       ...      ...        ...                    ...                  ...                 ...                   ...
1416      176933     44628     3295     266338               0.001575         4.011206e-02            0.005772              0.382141
1417       17163     13719      792       6233               0.000153         1.233077e-02            0.001387              0.008943
1418        2642      3184       12        832               0.000024         2.861809e-03            0.000021              0.001194
1419        1651      1825        1         61               0.000015         1.640327e-03            0.000002              0.000088
1420        2993      2481       29       2402               0.000027         2.229946e-03            0.000051              0.003446

通過為 Pandas 指定格式參數也解決了格式問題。

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

有趣的是,其他列的格式正確,而#friends_normalized則沒有。

您只為 numpy 設置打印選項,而不是為熊貓設置。 將此行與其他 set_options 一起包含:

pd.set_option('display.float_format', lambda x: '%.5f' % x)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM