包含astype(str)可以指定小數位嗎的詞條

本文目錄一覽:

在vfp中str(28.456,6,2)的值

str()即數值轉換字符函數

功能是返回與指定數值表達式對應的字符.

語法:

str(數值表達式[,長度[,小數位數]])

數值表達式:要被轉換為字符的數值表達式.

長度:轉換後字符的長度.該長度等於小數點和小數點右邊第個數字所佔字符的數目總和.如果指定長度大於所需長度,自動在前面加空格補齊.如果指定長度小於所需長度,返回一串星(*)號,表示數值溢出.如省略長度,則默認長度為10.

小數位數:指定返回字符串中的小數位數.如指定位數小於實際位數,則返回值四捨五入.如指定位數大於實際位數,則加0補齊.如省略小數位數,默認為0.在指定了小數位數的情況下,如指定長度(第二個參數)小於總長度,但大於整數長度,則返回對小數部分做了四捨五入的字符.

例如:str(1234.567,7,2)結果為字符串1234.57

str(1234.567,6,2)結果為字符串1234.6

matlab里,怎樣對小數取有效位?我想把m=0.34取為m=0.3,該怎樣?

matlab裏面好像只能對總的有效位數進行控制,只對小數的話目前沒有太好的辦法。有些方法是可以用的,就是太複雜了,比如說

方法1:digits+vpa 方法

該方法是用digits()設定運算精度,然後用vpa獲得所要的小數位數。該方法可以達到獲取需要的任意位小數,但弊端很多,其1,運算精度里包含了整數部分,所以需要提取整數部分和分數部分,並計算整數部分的位數,以下程序中求len就是整數位數。其2,獲得的結果是符號型,符號型的運算速度要比數值慢上很多。

format long

a = input(‘please give a number which will be changed£º’);

n = input(‘how many decimal digits will you keep: ‘);

num = floor(a);

str = num2str(num);

len = length(str);

err = a-num; % 獲取小數部分

digits(n+len); % 此處為需要的小數位 + 整數位數

need_num = num+vpa(err,n+len); %%%% 獲得按要求保留的小數,但獲得的是符號性

need_str = num2str(double(need_num)) %%%%% 符號型轉浮點型,再轉字符型

運行結果:

please give a number which will be changed:3.1415926

how many decimal digits will you keep: 2

need_str =

3.14

方法2:round 函數法

該方法為先將要保留的部分轉成整數,即切除不要的尾部,然後再恢復成所要的相應小數。該方法最為簡潔,但不可恢復。

format long

a = input(‘please give a number which will be changed:’);

n = input(‘how many decimal digits will you keep: ‘);

b = a*10^n;

aa = round(b);

need_num = aa/10^n; %%%%% 先化成整數,再轉成小數

need_str = num2str(need_num)

運行結果:

please give a number which will be changed:pi

how many decimal digits will you keep: 2

need_str =

3.14

方法3:直接轉成字符串,再取需要位數

該方法是直接轉成需要的字符串,再截取所要的小數位。缺點是連四捨五入都沒有,直接截斷尾部。

format long

a = input(‘please give a number which will be changed:’);

n = input(‘how many decimal digits will you keep: ‘);

num = floor(a);

str = num2str(num);

len = length(str);

str1 = num2str(a);

need_str = str1(1:(len+n+1)) %%%取需要的長度,這裡需要加上整數長和小數點1位

運行結果:

please give a number which will be changed:pi

how many decimal digits will you keep: 2

need_str =

3.14

方法4:fprintf方法

該方法僅僅只是輸出顯示,並無法達到轉成字符的效果。而且無法動態控制。

a = input(‘please give a number which will be changed:’);

n = input(‘how many decimal digits will you keep: ‘);

fprintf(‘a = %3.2f\n’,a) %%%%3.2f中.2就是小數位數

運行結果:

please give a number which will be changed:pi

how many decimal digits will you keep: 2

a = 3.14

matlab 將數字轉換成字符串,可不可以按小數點後的位數來保留?

你問的這個問題很有意思啊,matlab要保留任意位數,是一個比較值得研究的東西。

默認format也就是format short是保留4位小數,format long 是保留14位,如果要保留兩位或者六位,就存在如何設置的問題。本人做了點總結,給出以下方法

方法1:digits+vpa

format long

a = input(‘please give a number which will be changed:’);

n = input(‘how many decimal digits will you keep: ‘);

num = floor(a);

str = num2str(num);

len = length(str);

err = a-num;

digits(n+len); % 此處為需要的小數位+整數位數

need_num = num+vpa(err,n+len); %%%% 這裡得到的是符號型

need_str = num2str(double(need_num)) %%%%% 再次轉換獲得字符型

方法2:round 函數法

format long

a = input(‘please give a number which will be changed:’);

n = input(‘how many decimal digits will you keep: ‘);

b = a*10^n;

aa = round(b);

need_num = aa/10^n; %%%%% 先化成整數,再轉成小數

need_str = num2str(need_num)

方法3:直接轉成字符串再截取

format long

a = input(‘please give a number which will be changed:’);

n = input(‘how many decimal digits will you keep: ‘);

num = floor(a);

str = num2str(num);

len = length(str);

str1 = num2str(a);

need_str = str1(1:(len+n+1)) %%%取需要的長度,這裡需要加上整數長和小數點1位

方法4:fprintf方法

a = input(‘please give a number which will be changed:’);

%n = input(‘how many decimal digits will you keep: ‘);

fprintf(‘a = %3.2f’,a) %%%%3.2f中.2就是小數位數

Visual FoxPro 為什麼 str(1,2)的結果是2?

str()顯示的為數值四捨五入的結果(按你小數的精度,若無小數位指定,則默認為顯示整數)

所以str(1,2)顯示為1

若Str(1.5,2)則顯示為2

Python自動生成數據日報

import pandas as pd

import numpy as np

import collections as Counter

from datetime import datetime

df=pd.read_excel(“D:\曾海峰\python零一課程\用Python自動生成數據日報!\銷售數據明細.xlsx”,

parse_dates=[‘銷售日期’])

df.head()#數據預覽

df.info()#查看數據屬性

“””

計算指標

計算指標設定,設置本文需要計算的指標,指標計算如下:

收入=銷量*銷售額

單量=銷量匯總

貨品數=貨品數去重

收入環比:本月收入/上月收入-1

單量環比:本月單量/上月單量-1

計算本月相關指標

首先選取本月的數據,本月截止到2021年12月25日的數據,分別計算本月截止12月25日收入、

本月截止12月25日單量、本月截止12月25日貨品數。”””

“””shouru1=(the_month[‘銷量’]*the_month[‘銷售額’]).sum()#本月截止12月25日收入

danliang1=the_month[‘銷量’].sum()#本月截止12月25日單量

huopin1=the_month[‘貨號’].unique()#本月截止12月25日貨品數

list_huopin1=len(huopin1.tolist())

print(“本月截止到12月25日收入為{:.2f}元,單量為{}個,貨品數為{}個”.format(shouru1,danliang1,list_huopin1))”””

“””計算上月相關指標

同時選取上月同期的數據,數據範圍11月1日到11月25日的數據,分別計算上月同期的收入、上月同期的單量、上月同期的貨品數。”””

“””shouru2=(last_month[‘銷量’]*last_month[‘銷售額’]).sum()#本月截止12月25日收入

danliang2=last_month[‘銷量’].sum()#本月截止11月25日單量

huopin2=last_month[‘貨號’].unique()#本月截止11月25日貨品數

list_huopin2=len(huopin2.tolist())

print(“本月截止到11月25日收入為{:.2f}元,單量為{}個,貨品數為{}個”.format(shouru2,danliang2,list_huopin2))”””

“””利用函數進行封裝

以上我們可以發現規律,計算本月的相關指標數據與計算上月同期的指標數據計算邏輯是一樣的,除了數據選取的日期不一樣,我們可以自定義一個函數,用於計算相關的數據指標,簡化數據計算的流程。”””

def get_month_date(df):

shouru=(df[‘銷量’]*df[‘銷售額’]).sum()

danliang=df[‘銷量’].sum()

huopin=df[‘貨號’].nunique()

#list_huopin=len(huopin.tolist())

#return(shouru,danliang,list_huopin)

return(shouru,danliang,huopin)

the_month=df[(df[‘銷售日期’]=datetime(2021,12,1))(df[“銷售日期”]=datetime(2021, 12,25))]

shouru1,danliang1,huopin1=get_month_date(the_month)#計算本月數據指標

print(“本月截止12月25日收入為{:.2f}元,單量為{}個,貨品數為{}個”.format(shouru1,danliang1,huopin1))

last_month=df[(df[‘銷售日期’]=datetime(2021,11,1))(df[“銷售日期”]=datetime(2021, 11,25))]

shouru2,danliang2,huopin2=get_month_date(last_month)#計算本月數據指標

print(“上月截止11月25日收入為{:.2f}元,單量為{}個,貨品數為{}個”.format(shouru2,danliang2,list_huopin2))

“””計算環比 構建一個DataFrame,填入具體的計算指標數值,計算環比數據。”””

ribao=pd.DataFrame([[shouru1,shouru2],

[danliang1,danliang2],

[huopin1,huopin2]],

columns=[“本月”,”上月”],

index=[‘收入’,’單量’,’貨品數’])

ribao[‘環比’]=ribao[‘本月’]/ribao[‘上月’]-1

ribao[‘環比’]=ribao[‘環比’].apply(lambda x:format(x,’.2%’))#數據小數轉百分數,%2表示保留小數點後2位

ribao

“”可以將具體的數據日報導出到本地。””

ribao.to_excel(r’C:\Users\liangfeng\Desktop\數據日報.xlsx’,index=False)

df[‘銷售月份’]=df[‘銷售日期’].astype(str).str[0:7].str.replace(‘-‘,”)

df_group=df.groupby(“銷售月份”).aggregate({‘銷售額’:’sum’,’銷量’:’sum’})

df_group=df.groupby(“銷售月份”).aggregate({“銷售額”:”sum”,”銷量”:”sum”})

df_group

from pyecharts import options as opts

from pyecharts.charts import Bar, Line

from pyecharts.faker import Faker

v1 = df_group[‘銷售額’].round(2).tolist()

v2 = df_group[‘銷量’].tolist()

bar = (Bar()

.add_xaxis(df_group.index.tolist())

.add_yaxis(“銷售額”, v1 ,category_gap=”60%”,gap=”10%”) #設置柱形間隙寬度

.extend_axis(yaxis=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter=”{value} 單”), min_=0,max_=1750))#設置次坐標軸坐標大小

.set_series_opts(label_opts=opts.LabelOpts(is_show=True))#顯示數據標籤

.set_global_opts(title_opts=opts.TitleOpts(title=”21年每月銷售額與銷量情況”),

datazoom_opts=opts.DataZoomOpts(),#添加滾動條

yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter=”{value} 元”),min_=0,max_=850000)))#設置主坐標軸坐標大小

line = Line().add_xaxis(df.index.tolist()).add_yaxis(“銷售量”, v2, yaxis_index=1, is_smooth=True)

bar.overlap(line)

bar.render_notebook() ###bar.render(r’C:\Users\尚天強\Desktop\銷售日報.html’)

原創文章,作者:QGPRR,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/324700.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
QGPRR的頭像QGPRR
上一篇 2025-01-13 13:23
下一篇 2025-01-13 13:23

相關推薦

  • Python中str的用法解析

    Python是一種非常流行的編程語言,被廣泛用於各種項目和應用程序的開發,其中str類型是python語言非常重要的一部分。在本文中,我們將從多個方面對Python中str類型進行…

    編程 2025-04-27
  • Python中的str和int類型

    Python是一種高級編程語言,有許多基本數據類型。其中,str和int是兩個最常用的數據類型之一。str是指字符串類型,表示一連串的字符,而int則是整數類型,表示正負整數。在本…

    編程 2025-04-27
  • str.substring()——多方位詳解

    一、基本介紹 在JavaScript中,字符串是常見數據類型之一,而在我們操作字符串時,常常需要截取其中一部分。這時,str.substring()方法就派上了用場。該方法用於獲取…

    編程 2025-04-12
  • ARM STR指令詳解

    ARM是一種精簡指令集(RISC)架構,最初由英國公司ARM Holdings開發。它在嵌入式系統和移動設備中得到廣泛應用。其中,ARM STR指令是一條非常常用的指令,用於將寄存…

    編程 2025-02-25
  • astype 函數的全方位解讀

    一、astype 函數的初探 astype 是 Python 中的一種函數,用於將 NumPy 數組中的數據類型轉換為特定的數據類型。例如,我們可以在 numpy 數組中將整數轉換…

    編程 2025-02-24
  • .astype的多面試闡述

    在Python和NumPy中,數據類型是編程過程中一個至關重要的概念。這就是為什麼.astype()經常用來轉換數據類型。.astype()是NumPy的一個函數。該函數返回一個將…

    編程 2025-02-15
  • Python中的str.split()方法解析

    一、split()方法是什麼 Python中的split()方法是針對字符串的,它的作用是從原字符串中去除指定字符,並將剩餘部分按照指定的分隔符進行分割,生成一個包含分割後的各個部…

    編程 2025-02-01
  • Python中的捨棄小數位函數

    一、round()函數 Python中最常用的捨棄小數位函數是round()函數,它可以對數字進行四捨五入,並返回一個整數或浮點數。 num1 = 3.14159 num2 = 2…

    編程 2025-01-20
  • 包含soapjava的詞條

    本文目錄一覽: 1、java soap的報錯 2、關於java,soap服務器端的代碼怎麼寫 3、如何用java做soap 4、java soap的header怎麼獲取 5、JAV…

    編程 2025-01-16
  • 包含python標準庫及示例的詞條

    本文目錄一覽: 1、python哪些標準庫 2、Python常用的標準庫以及第三方庫有哪些? 3、Python 常用的標準庫以及第三方庫有哪些 python哪些標準庫 標準庫比較多…

    編程 2025-01-16

發表回復

登錄後才能評論