这篇文章将为大家详细讲解有关python做数据清洗的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

1.数据清洗的代码:

importpandasaspdimportnumpyasnp#创建空的df,保存测试数据test_df=pd.DataFrame({'K1':['C1','C1','C2','C3','C4','C2','C1'],'K2':['A','A','B','C','D',np.NaN,np.NaN]})#按K1列进行分组,组内进行unique操作(去除重复元素,返回元组或列表)test_df_unique=pd.DataFrame(test_df.groupby(['K1'])['K2'].agg('unique'))#自定义函数判断元组中是否含有nandefhas_nan(list):flag=Falseforxinlist:ifxisnp.NaN:flag=Truebreakreturnflag#自定义函数判断元组中是否不含有nandefno_nan(list):flag=Trueforxinlist:ifxisnp.NaN:flag=Falsebreakreturnflag#获取k2列含有nan的数据test_df_unique_has_nan=test_df_unique[test_df_unique['K2'].apply(has_nan)]#获取k2列不含有nan的数据test_df_unique_no_nan=test_df_unique[test_df_unique['K2'].apply(no_nan)]#管理测试数据,获取源数据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的重复数据test_df_get_nonan=test_df_get[~test_df_get['K2'].isna()]#组合数据result=test_df_get_nonan.append(test_df_alone)#去重,得到最终结果result_save=result.drop_duplicates(subset=['K1','K2'],keep='last')#结果落地result_save.to_excel('C:/Users/zhen/Desktop/数据清洗之去重.xlsx')

2、测试数据:

3、结果:

关于python做数据清洗的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。