python pandas 清洗数据

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


处理数量比较大的数据CSV版

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、使用步骤

1.引入库

代码如下(示例):

import os,time
import pandas as pd
import numpy as np
#pip install pandas openpyxl xlrd xlwt
''' 
pandas:用于数据分析和处理,支持读写Excel文件。
openpyxl:用于读写Excel文件。
xlrd:用于读取Excel文件。
xlwt:用于写入Excel文件
'''

2.详细代码

代码如下(示例):

local_path = os.getcwd()
print(local_path)
print("程序正在运行,请等待... ...")
time_start = time.time()
excel_file = local_path+"\\data.csv"
data = pd.read_csv(excel_file,engine="python")
time_end = time.time()
print("耗时{}秒".format(time_end - time_start))
column_text = data.iloc[:,[1,3,4,7,9,10]]#获取对应列数据
clumn_data = column_text.to_dict('split')
clas_s = ''
i = 0
ix = 0
writer = ""
class_list = []
ming_list = []
bian_list = []
dict_data = {}
for x in clumn_data['data']:
    if clas_s != x[0] and x[0] !='class_别' and type(x[0])!=float:
       clas_s = x[0]#遇到新的class_别
       if clas_s not in dict_data:
           dict_data[clas_s]={'name':x[1],'pic_code':x[2]}
new_list = list(set(dict_data))
print('new_list',new_list)
for ix in new_list:
    dict_data[ix]['class_别']=[]
    dict_data[ix]['name']=[]
    dict_data[ix]['pic_code']=[]
    for x in clumn_data['data']:
        if x[0] == ix:
           dict_data[ix]['class_别'].append(x[0])          
           dict_data[ix]['name'].append(x[1])          
           dict_data[ix]['pic_code'].append(x[2])            
        if x[3] == ix:
           dict_data[ix]['class_别'].append(x[3])          
           dict_data[ix]['name'].append(x[4])          
           dict_data[ix]['pic_code'].append(x[5])          

for x in dict_data:
    print(x)
    class_dict={
        'class_别':dict_data[x]['class_别'],
        'name':dict_data[x]['name'],
        'pic_code':dict_data[x]['pic_code']
    }
    print(class_dict)
    try:
        s1 = pd.DataFrame(class_dict)
        s1.to_csv(local_path+"\\"+x+".csv", index=False)#csv只能生成单个文件
    except Exception as E:
       print('error',E)
    else:
       pass
    class_dict={}
print('结束')
exit()
       

处理数量比较大的数据excel版

二、使用步骤

2.详细代码

代码如下(示例):

local_path = os.getcwd()
print(local_path)
print("程序正在运行,请等待... ...")
excel_file = local_path+"\\data.xlsx"
data = pd.read_excel(excel_file)
column_text = data.iloc[:,[1,3,4,7,9,10]]#获取对应列数据
clumn_data = column_text.to_dict('split')
clas_s = ''
i = 0
ix = 0
writer = ""
class_list = []
ming_list = []
bian_list = []
dict_data = {}
for x in clumn_data['data']:
    if clas_s != x[0] and x[0] !='class_别':
       clas_s = x[0]#遇到新
       if clas_s not in dict_data:
           dict_data[clas_s]={'name':x[1],'pic_code':x[2]}
new_list = list(set(dict_data))
print('new_list',new_list)
for ix in new_list:
    dict_data[ix]['class_别']=[]
    dict_data[ix]['name']=[]
    dict_data[ix]['pic_code']=[]
    for x in clumn_data['data']:
        if x[0] == ix:
           dict_data[ix]['class_别'].append(x[0])          
           dict_data[ix]['name'].append(x[1])          
           dict_data[ix]['pic_code'].append(x[2])            
        if x[3] == ix:
           dict_data[ix]['class_别'].append(x[3])          
           dict_data[ix]['name'].append(x[4])          
           dict_data[ix]['pic_code'].append(x[5])          
for x in dict_data:
    print(x)
    class_dict={
        'class_别':dict_data[x]['class_别'],
        'name':dict_data[x]['name'],
        'pic_code':dict_data[x]['pic_code']
    }
    writer = pd.ExcelWriter(excel_file, mode="a")
    print(class_dict)
    try:
        s1 = pd.DataFrame(class_dict)
        s1.to_excel(writer, sheet_name=x, index=False)#可以把一个页面里的数据分成多个sheet
    except Exception as E:
       print('error',E)
    else:
       writer.close()
       pass
    class_dict={}
print('结束')
exit()
       
  

该处使用本地的数据。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值