這篇文章將為大家詳細講解有關(guān)python做數(shù)據(jù)清洗的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
公司主營業(yè)務(wù):成都做網(wǎng)站、網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出農(nóng)安免費做網(wǎng)站回饋大家。
1.數(shù)據(jù)清洗的代碼:
import pandas as pd import numpy as np # 創(chuàng)建空的df,保存測試數(shù)據(jù) test_df = pd.DataFrame({'K1':['C1','C1','C2','C3','C4','C2','C1'],'K2':['A','A','B','C','D',np.NaN,np.NaN]}) # 按K1列進行分組,組內(nèi)進行unique操作(去除重復元素,返回元組或列表) test_df_unique = pd.DataFrame(test_df.groupby(['K1'])['K2'].agg('unique')) # 自定義函數(shù)判斷元組中是否含有nan def has_nan(list): flag = False for x in list: if x is np.NaN: flag = True break return flag # 自定義函數(shù)判斷元組中是否不含有nan def no_nan(list): flag = True for x in list: if x is np.NaN: flag = False break return flag # 獲取k2列含有nan的數(shù)據(jù) test_df_unique_has_nan = test_df_unique[test_df_unique['K2'].apply(has_nan)] # 獲取k2列不含有nan的數(shù)據(jù) test_df_unique_no_nan = test_df_unique[test_df_unique['K2'].apply(no_nan)] # 管理測試數(shù)據(jù),獲取源數(shù)據(jù) test_df_get = test_df[test_df['K1'].isin(test_df_unique_has_nan.index.tolist())] test_df_alone = test_df[test_df['K1'].isin(test_df_unique_no_nan.index.tolist())] # 去除含nan的重復數(shù)據(jù) test_df_get_nonan = test_df_get[~test_df_get['K2'].isna()] # 組合數(shù)據(jù) result = test_df_get_nonan.append(test_df_alone) # 去重,得到最終結(jié)果 result_save = result.drop_duplicates(subset=['K1','K2'],keep='last') # 結(jié)果落地 result_save.to_excel('C:/Users/zhen/Desktop/數(shù)據(jù)清洗之去重.xlsx')
2、測試數(shù)據(jù):
3、結(jié)果:
關(guān)于python做數(shù)據(jù)清洗的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。