亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python輪不返回整數

Python輪不返回整數

慕碼人8056858 2021-11-02 20:24:49
我編寫了以下代碼來四舍五入數據幀中的浮動值 aa = pd.DataFrame([[1.2,3.4],[1.4,4.6]])a = a.apply(round)但我得到的輸出如下:    0   10   1.0 3.01   1.0 5.0為什么函數返回四舍五入的浮點值而不是整數?此外,在應用如下時,行為是不同的:round(0.5)>>0x= [1.4,2.5,3.6]list(map(round,x))>>[1, 2, 4]為什么會出現這種異常?
查看完整描述

2 回答

?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

applyround連續調用每一列上的函數。DataFrame 列是Series對象,這些__round__列上定義了一個dunder 方法,其行為略有不同。這實際上是round調用Series.


round(a[0])


0    1.0

1    1.0

Name: 0, dtype: float64


# Same as,

a[0].__round__()


0    1.0

1    1.0

Name: 0, dtype: float64

將此與 Pythonround在標量上的典型行為進行對比:


round(1.5)

# 2


 # Same as,

(1.5).__round__()

# 2

如果您想要相同的行為,請使用applymap.


a.applymap(round)


   0  1

0  1  3

1  1  5

這適用round于每個元素(標量),向下取整為整數。


或者,我推薦的解決方案,


a.round().astype(int)


   0  1

0  1  3

1  1  5

請注意,這不會對包含缺失數據 (NaN) 的列進行類型轉換。


查看完整回答
反對 回復 2021-11-02
?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

a = a.apply(round).astype(dtype=np.int64)

只需使用它astype即可將您floatinteger.


查看完整回答
反對 回復 2021-11-02
  • 2 回答
  • 0 關注
  • 198 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號