欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決使用pandas聚類時的小坑

 更新時間:2021年04月07日 09:30:45   作者:填坑小霸王  
這篇文章主要介紹了解決使用pandas聚類時的小坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

問題背景:

之前運行測試好好的程序,忽然出現(xiàn)了報錯,還是merge時候的類型錯誤,這個bug有點蹊蹺。

問題分析:

代碼:進行聚類之后計算平均值與方差

tmp_df = df[['object1', 'float']].groupby(['object1']).head(20).groupby(['object1'])['float'].agg(['mean', 'sum']).reset_index()

這個輸出的就是原本的數(shù)據(jù)類型:一個object,一個float64

tmp_df = http_df[['object1', 'object2', 'float']].groupby(['object1', 'object2']).head(20).groupby(['object1', 'object2'])['float'].agg(['mean']).reset_index()

這個輸出就會修改object為float,

差別只在于一個是使用一個特征進行聚類,一個是使用兩個特征進行聚類

問題原因(個人猜測,僅供參考):

pandas進行聚類的時候,就算之前已經定好各個列的類型,如果里邊沒有數(shù)據(jù)的時候,使用一列進行聚類不會修改列的類型,但是如果同時使用兩列進行聚類就會修改列的類型。

所以才會出現(xiàn)后面進行merge時候,類型不同報錯

有數(shù)據(jù)輸入的時候這個報錯不會發(fā)生,沒有數(shù)據(jù)的時候就會發(fā)生。

補充:python數(shù)據(jù)處理--按照數(shù)據(jù)差值大小進行聚類(歸類)

近來在做數(shù)據(jù)處理的工作中,遇到了數(shù)據(jù)分類的問題,利用python的各種方便庫,寫了這么個以數(shù)據(jù)差值大小進行歸類的方法。

應用場景:

有一批數(shù)據(jù)集,如list=[1,2,3,4,9,10,11,20,20,1,1.1,2.1,100],將其按照數(shù)值大小進行歸類,即數(shù)值比較接近的歸為一類,故需要先設置一個閾值,以進行劃分。

具體實現(xiàn)如下:

其中輸入?yún)?shù)Data_set為輸入的數(shù)據(jù)集,可以為列表、數(shù)組、Series、DataFrame。threshold為數(shù)據(jù)大小分類的門限值。

輸出class_k為數(shù)據(jù)歸類列表集合,index_list為數(shù)據(jù)歸類對應的索引集合。

def threshold_cluster(Data_set,threshold):
 #統(tǒng)一格式化數(shù)據(jù)為一維數(shù)組
 stand_array=np.asarray(Data_set).ravel('C')
 stand_Data=Series(stand_array)
 index_list,class_k=[],[]
 while stand_Data.any():
  if len(stand_Data)==1:
   index_list.append(list(stand_Data.index))
   class_k.append(list(stand_Data))
   stand_Data=stand_Data.drop(stand_Data.index)
  else:
   class_data_index=stand_Data.index[0]
   class_data=stand_Data[class_data_index]
   stand_Data=stand_Data.drop(class_data_index)
   if (abs(stand_Data-class_data)<=threshold).any():
    args_data=stand_Data[abs(stand_Data-class_data)<=threshold]
    stand_Data=stand_Data.drop(args_data.index)
    index_list.append([class_data_index]+list(args_data.index))
    class_k.append([class_data]+list(args_data))
   else:
    index_list.append([class_data_index])
    class_k.append([class_data])
 return index_list,class_k

測試如下:

import numpy as np 
from pandas import Series,DataFrame 
Data_set=[1,1.1,0.9,-5,2,100,99,-4.2,10000,0] 
index_list,class_k=threshold_cluster(Data_set,5) 
index_list
Out[10]: [[0, 1, 2, 4, 9], [3, 7], [5, 6], [8]] 
class_k
Out[11]: [[1.0, 1.1, 0.9, 2.0, 0.0], [-5.0, -4.2], [100.0, 99.0], [10000.0]]
 

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關文章

  • Python爬蟲防封ip的一些技巧

    Python爬蟲防封ip的一些技巧

    這篇文章主要介紹了Python爬蟲防封ip的一些技巧,對平時學習爬蟲有所幫助,感興趣的朋友可以了解下
    2020-08-08
  • 關于Python代碼混淆和加密技術

    關于Python代碼混淆和加密技術

    這篇文章主要介紹了關于Python代碼混淆和加密技術,Python進行商業(yè)開發(fā)時, 需要有一定的安全意識, 為了不被輕易的逆向還原,混淆和加密就有所必要了,需要的朋友可以參考下
    2023-07-07
  • 基于Python實現(xiàn)貪吃蛇小游戲(附源碼)

    基于Python實現(xiàn)貪吃蛇小游戲(附源碼)

    本次我們將編寫一個貪吃蛇的游戲。通過鍵盤上、下、左、右控制小蛇上、下、左、右移動,吃到食物后長度加1;蛇頭碰到自身或窗口邊緣,游戲失敗,需要的可以參考一下
    2022-11-11
  • 用Python編寫分析Python程序性能的工具的教程

    用Python編寫分析Python程序性能的工具的教程

    這篇文章主要介紹了用Python編寫分析Python程序性能的工具教程,包括了對內存泄漏等常見問題的檢測方法,需要的朋友可以參考下
    2015-04-04
  • python scatter函數(shù)用法實例詳解

    python scatter函數(shù)用法實例詳解

    這篇文章主要介紹了python scatter函數(shù)用法實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • Python 實現(xiàn)將某一列設置為str類型

    Python 實現(xiàn)將某一列設置為str類型

    這篇文章主要介紹了Python 實現(xiàn)將某一列設置為str類型,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • python實現(xiàn)好看的時鐘效果

    python實現(xiàn)好看的時鐘效果

    這篇文章主要為大家詳細介紹了python實現(xiàn)好看的時鐘效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Django 權限管理(permissions)與用戶組(group)詳解

    Django 權限管理(permissions)與用戶組(group)詳解

    這篇文章主要介紹了Django 權限管理(permissions)與用戶組(group)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • opencv用VS2013調試時用Image Watch插件查看圖片

    opencv用VS2013調試時用Image Watch插件查看圖片

    本文主要介紹了opencv用VS2013調試時用Image Watch插件查看圖片,直接以圖片形式可視化了opencv中的Mat變量。感興趣的可以了解下
    2021-07-07
  • Python如何建立多個值和單個鍵的映射

    Python如何建立多個值和單個鍵的映射

    在Python中,常見的字典只能映射單個鍵到單個值,若需映射單個鍵到多值,可以通過將值存儲于列表或集合中實現(xiàn),使用列表可以保持元素插入順序,而使用集合則可以去重,collections模塊的defaultdict類簡化了此類多值字典的創(chuàng)建過程
    2024-09-09

最新評論