python如何做数据清洗?

图片[1]-python如何做数据清洗?-优素网-模型,乐高,编程,学习经验

1.数据清洗的代码:

importpandasaspd
importnumpyasnp
#创建空的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'))
#自定义函数判断元组中是否含有nan
defhas_nan(list):
flag=False
forxinlist:
ifxisnp.NaN:
flag=True
break
returnflag
#自定义函数判断元组中是否不含有nan
defno_nan(list):
flag=True
forxinlist:
ifxisnp.NaN:
flag=False
break
returnflag
#获取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、测试数据:

p1.jpg

3、结果:

原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容