当前位置: 首页 > 图灵资讯 > 行业资讯> python如何做数据清洗?

python如何做数据清洗?

发布时间:2026-01-19 21:38:03

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
#获取包含nan数据的k2列数据
test_df_unique_has_nan=test_df_unique[test_df_unique['K2'].apply(has_nan)]
#获取不含nan的k2列数据
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、结果:

p2.jpg

相关文章

Python怎么把数字变成中文?

Python怎么把数字变成中文?

2026-01-22
python时间戳是啥意思?

python时间戳是啥意思?

2026-01-22
Python中的main函数解析

Python中的main函数解析

2026-01-22
python怎么判断是否为纯字母?

python怎么判断是否为纯字母?

2026-01-22
Python中的字典遍历有序吗?

Python中的字典遍历有序吗?

2026-01-22
python如何操作剪切板?

python如何操作剪切板?

2026-01-22