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

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

我需要更改 pandas 數據框中幾列的類型。無法使用 iloc 執行此操作

我需要更改 pandas 數據框中幾列的類型。無法使用 iloc 執行此操作

慕姐8265434 2023-08-22 10:25:58
在大約有 40 多列的數據框中,我嘗試使用 iloc 將前 27 列的數據類型從 float 更改為 int:df1.iloc[:,0:27]=df1.iloc[:,0:27].astype('int')但是,它不起作用。我沒有收到任何錯誤,但 dtype 也沒有改變。它仍然保持浮動?,F在是最奇怪的部分:如果我首先僅更改第一列的數據類型(如下所示):df1.iloc[:,0]=df1.iloc[:,0].astype('int')然后運行前面的代碼行:df1.iloc[:,0:27]=df1.iloc[:,0:27].astype('int')它按要求工作。任何幫助理解這一點和解決方案的幫助將不勝感激。謝謝!
查看完整描述

2 回答

?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

我猜這是 中的一個錯誤1.0.5。我在我的1.0.5. 我有和你一樣的問題。也.loc有同樣的問題,所以我猜 pandas 開發者破壞了iloc/loc. 您需要更新到最新的 pandas 或使用解決方法。如果您需要解決方法,請使用分配,如下所示

df1[df1.columns[0:27]] = df1.iloc[:, 0:27].astype('int')

我測試過。以上方法克服了這個錯誤。它將前 27 列轉換為 dtypeint32


查看完整回答
反對 回復 2023-08-22
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

只是不要使用 iloc。您只需在 27 列上創建一個循環并將它們轉換為您想要的數據類型。


df.info()

my_columns = df.columns.to_list()[0:27]

for i in my_columns:

   df[i] = df[i].astype('int32')

df.info()


查看完整回答
反對 回復 2023-08-22
  • 2 回答
  • 0 關注
  • 219 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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