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

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

在 pandas 中將數字數據框轉換為整數時出錯——“只能將整數標量數組轉換為標量索引”

在 pandas 中將數字數據框轉換為整數時出錯——“只能將整數標量數組轉換為標量索引”

婷婷同學_ 2023-02-07 16:04:12
我有一個大數據集,正在嘗試將僅包含數字數據的“對象”列轉換為 python/pandas 中的“整數”數據類型。對于我嘗試的每個代碼,我都收到以下錯誤:CODE SNIPPET (see below for options I have tried)PATH/frame.py in __setiten__(self, key, value)     3482              self._setitem_frame(key, value)     3483         elif isinstance(key, (Series, np.ndarray, list, Index)):  -->3484              self._setiten_array(key, value)     3485         else: PATH/frame.py in _setitem_array(self, key, value)     3507                  raise ValueError("Columns must be same length as key")     3508              for k1, k2 in zip(key, value.columns):  -->3509                  self[k1] = value[k2]     3510           else:      3511              indexer = self.loc._convert_to_indexer(key, axis=1)    PATH/frame.py in __setitem__(self, key, value)     3485         else:      3486             #set column  -->3487             self._set_item(key, value)     3488     3489    def _setitem_slice(self, key, value):PATH/frame.py in _set_item(self, key, value)     3562     3563     self._ensure_valid_index(value)  -->3564     value = self._sanitize_column(key, value)     3565     NDFrame._set_item(self, key, value)PATH/frame.py in _sanitize_column(self, key, value, broadcast)     3778     if broadcast and key in self.columns and value.ndim == 1:      3780         if not self.columns.is_unique or isinstance(self.columns, MultiIndex):  -->3781             existing_piece = self[key]     3782             if isinstance(existing_piece, DataFrame):     3783                 value = np.tile(value, (len(existing_piece.columns), 1))PATH/frame.py in __getitem__(self, key)     2971     if self.columns.nlevels > 1:     2972          return self.getitem_multilevel(key)  -->2973     return self.__get_item_cache(key_     2974     2975     # Do we have a slicer (on rows)?
查看完整描述

2 回答

?
阿波羅的戰車

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

嘗試這個:


for col in ["column1", "column 2", "column 3", "column 4"]:

    # df[col].reshape((1,-1))

    df[col] = [int(n) for n in df[col]]


查看完整回答
反對 回復 2023-02-07
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

我找到了答案。問題可能是我正在使用 Oracle 數據庫連接,我不確定。如果有人有更簡單的方法在 Python 中執行此操作,我仍然很樂意聽到更多評論,但我是這樣做的:


#coerce stores all non-convertible values as NA and ignore keeps original values, so column may have mixed data types. 

df['column names'] = df[['column names']].apply(pd.to_numeric, errors = 'coerce').fillna(df)

請注意,對非數字項目使用強制可能會刪除其數據并將其切換為 NA。:) 這雖然有效!


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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