pandas介绍以及数据清洗使用

一、Pandas概要介绍

pandas是一个开源的,BSD许可的库,为Python编程语言提供高性能,易于使用的数据结构和数据分析工具。可以用于对CSV和文本文件、Microsoft Excel、SQL数据库数据的读写。

能够帮助数据清洗,数据分析和数据建模。

二、主要的两种数据结构

序列(Series):维标记数组,能够保存任何数据类型,有索引。

s = pd.Series([1,2,3],index=[‘a‘,‘b‘,‘c‘])
print(s)

数据帧(dataframe):二维标记数据结构,可以传递行索引和列索引。

d = pd.DataFrame([[1,2,3],[4,5,6]], columns=[‘a‘,‘b‘,‘c‘])
print(d)

三、使用pandas读取csv文件存入mysql

import pymysql
import numpy as np
import pandas as pd
from pandas import DataFrame
import datetime
import sys
import pymysql
import csv

db = pymysql.connect(‘localhost‘, ‘root‘, ‘123456‘, ‘languid‘)

if __name__ == ‘__main__‘:
    filepath= sys.argv[1]
    f = pd.read_csv(filepath,engine=‘python‘,sep=‘,‘,index_col=[0],header=[0])#去掉索引
    q=f.drop([‘abc‘,‘deg‘],axis=1)#去掉列abc deg
    qq= q[‘APZWMC‘].str.split(‘-‘,expand=True)#拆分
    qqq=pd.merge(q,qq,on=‘APMAC‘,how=‘right‘)#拼接dataframe 以APMAC列为关键组合列
    qqq[‘sum‘]=qqq[‘APGLDMC‘]+qqq[‘APJWD‘]#这两列都是数字 把他们相加并生成新的一列负在后面
    new_qqq=qqq.rename(columns={0: ‘A‘, 1: ‘B‘}, inplace=False)
    data=[]
    for row in new_qqq.itertuples():#按顺序遍历,将DataFrame迭代为元祖
        row_tuple= [row.Index, row.APMC, row.APZWMC, row.APGLDDM, row.APGLDMC, row.APJWD, row.A,row.B,row.sum]
        data.append(row_tuple)
        print(row)
    cursor = db.cursor()
    sql = ‘INSERT INTO SJJH_APXXB2 (APMAC,APMC,APZWMC,APGLDDM,APGLDMC,APJWD,A,B,sum) values (%s,%s,%s,%s,%s,%s,%s,%s,%s)‘#表在mysql中已经建好了 直接插入
    cursor.executemany(sql,data)
    db.commit()
    db.close()
第二种import numpy as np
import pandas as pd
from pandas import DataFrame
import datetime
import sys
import pymysql
import csv

from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker

engine = create_engine(‘mysql+pymysql://root:[email protected]/languid?charset=utf8‘)
db = scoped_session(sessionmaker(bind=engine))

aa=[]

if __name__ == ‘__main__‘:
    f = pd.read_csv(‘c://百度网盘//xingqiu.csv‘,engine=‘python‘,sep=‘,‘,index_col=[0],header=[0])
    q=f.drop([‘abc‘,‘deg‘],axis=1)
    qq= q[‘APZWMC‘].str.split(‘-‘,expand=True)
    qqq=pd.merge(q,qq,on=‘APMAC‘,how=‘right‘)
    qqq[‘sum‘]=qqq[‘APGLDMC‘]+qqq[‘APJWD‘]
    new_qqq=qqq.rename(columns={0: ‘A‘, 1: ‘B‘}, inplace=False)
    pd.pivot_table(qqq,index=[‘APMAC‘],values=[‘APZWMC‘],aggfunc=‘count‘)
    for iii in pd.pivot_table:
        print(iii)

    pd.io.sql.to_sql(b, ‘sjjh_apxxb‘, engine, schema=‘languid‘, if_exists=‘append‘)#append:如果表存在,则将数据添加到这个表的后面fail:如果表存在就不操作replace:如果存在表,删了,重建
    db.commit()
    db.close()

四、用pandas清洗数据的一些操作

import pandas as pd
data = pd.read_csv(‘c://百度网盘//movie_metadata.csv‘,engine=‘python‘,sep=‘,‘)
# print(data.head())
print(data.genres.describe())
# print(data[‘genres‘])

#删除不完整的行
data.country=data.country.fillna(‘‘)#用空字符串代替NAN值
data.dropna()#删除任何包含NA值的行
data.dropna(how=‘all‘)#删除一整行的值都为NA
data.drop(theresh=5)#在行数据有至少5个为非na的数据
data.dropna(subset=[‘title_year‘])#去掉上映时间这个数据

#删除不完整的列
data.drop(axis=1,how=‘all‘)#删除一整列为na的列
data.drop(axis=1,how=‘any‘)#删除任何包含空值的列

#必要的变换
data[‘movie_title‘].str.upper() #将title大写
data[‘movei_title‘].str.strip()#去掉末尾空格

#重命名列名
data.rename(columns={‘title_year‘:‘release_dae‘,‘move_facebook_likes‘:‘facebook_likes‘})

#保存结果
data.to_csv(‘cleanfile.csv‘,encoding=‘utf-8‘)
import pandas as pd
# data = pd.read_csv(‘c://百度网盘//movie_metadata.csv‘,engine=‘python‘,sep=‘,‘)

#没有列头
column_names= [‘id‘, ‘name‘, ‘age‘, ‘weight‘,‘m0006‘,‘m0612‘,‘m1218‘,‘f0006‘,‘f0612‘,‘f1218‘]
df = pd.read_csv(‘../data/patient_heart_rate.csv‘, names = column_names)

#一个列有多个参数
df[‘first_name‘,‘last_name‘]=df[‘name‘].str.split(expand=True)
df.drop(‘name‘,axis=1,inplace=True)

#列数据的单位不统一
rows_with_lbs = df[‘weight‘].str.contains(‘lbs‘).fillna(False)
df[rows_with_lbs]
for i,lbs_row in df[rows_with_lbs].iterrows():
    weight=int(float(lbs_row[‘wieght‘][:-3])/2.2)
df.at[i,‘weight‘]=‘{}kgs‘.format(weight)

#空行
df.dropna(how=‘all‘,inplace=True)#删除全空的行

#重复数据
df.drop_duplicates([‘first_name‘,‘last_name‘],inpalec=True)

#非ASCII字符
df[‘first_name‘].replace({r‘[^\x00-\x7F]+‘:‘‘}, regex=True, inplace=True)

#有些列头应该是数据,而不是列名参数
import pandas as pd

df =pd.read_csv(‘C://百度网盘//Artworks.csv‘).head(100)
#时间范围变成时间
row_with_dashes= df[‘Data‘].str.contains(‘-‘).fillna(False)
for i,dash in df[row_with_dashes].iterrows():
    df.at[i,‘data‘] = dash[‘Data‘][0:4]
df[‘Date‘].value_counts

#c.1971变成时间 后四位
row_with_cs=df[‘Data‘].str.contains(‘c‘).fillna(False)
for i,row in df[row_with_cs].iterrrows():
    df.at[i,‘Data‘] = row[‘Date‘][-4:]
df[row_with_cs]

#问题数据赋值为0
df[‘Data‘] = df[‘Date‘].replace(‘Unknown‘,‘0‘,regex=True)
df[‘Data‘] = df[‘Date‘].replace(‘n.d‘,‘0‘,regex=True)

#选择指定单元格
#选取 windspeed 整列数据
print(type(df.loc[:,[‘windspeed‘]]))
#选区列索引为1,2的整行数据
print(type(df.iloc[:,[1,2]]))
#选区索引为1和2的整行数据
print(type(df.loc[1,2]))
#选择windspeed 整列数据
print(type(df[‘windspeed‘]))

pandas中文文档:https://www.pypandas.cn/document/merging.html

其他参考链接:https://www.cnblogs.com/BoyceYang/p/8182053.html

原文地址:https://www.cnblogs.com/languid/p/10923300.html

时间: 2024-10-09 07:40:20

pandas介绍以及数据清洗使用的相关文章

pandas介绍及环境部署

pandas介绍 Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具.pandas提供了大量能使我们快速便捷地处理数据的函数和方法.你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一.pandas是python里用于分析结构化数据的工具集,具有数据迁徙功能,可以处理海量数据 pandas依赖于两

python中numpy和pandas介绍

numpy和pandas是python中用于处理数据的两个库.numpy介绍:numpy用于处理array,且array中数据类型必须一致.下面以代码备注的方式介绍. #START import numpy as np v=np.array([1,2,3,4,5,6,7,8]) //array中以list的方式展现 m=np.array([[1,2,3,4,5,6,7,8], [8,7,6,5,4,3,2,1]]) h=np.array([[1,2,3,4,5,6,7,8], [8,7,6,5,

python pandas介绍

pandas是基于numpy包扩展而来的,因而numpy的绝大多数方法在pandas中都能适用. pandas中我们要熟悉两个数据结构Series 和DataFrame Series是类似于数组的对象,它有一组数据和与之相关的标签组成. import pandas as pd object=pd.Series([2,5,8,9]) print(object) 结果为: 0 21 52 83 9dtype: int64 结果中包含一列数据和一列标签我们可以用values和index分别进行引用 p

Pandas常用的数据清洗方法

df.duplicated( ).any( ) #判断数据集中是否有重复值df.drop_duplicates( inplace=True ) df.duplicated().any() # 判断数据集中是否有重复值 df.drop_duplicates(inplace=True) #删除重复值,inplace=True 说明在原数据集上进行修改, 原文地址:https://www.cnblogs.com/bravesunforever/p/11219507.html

用pandas进行数据清洗(二)(Data Analysis Pandas Data Munging/Wrangling)

在<用pandas进行数据清洗(一)(Data Analysis Pandas Data Munging/Wrangling)>中,我们介绍了数据清洗经常用到的一些pandas命令. 接下来看看这份数据的具体清洗步骤: Transaction_ID Transaction_Date Product_ID Quantity Unit_Price Total_Price 0 1 2010-08-21 2 1 30 30 1 2 2011-05-26 4 1 40 40 2 3 2011-06-16

2.pandas数据清洗

pandas是用于数据清洗的库,安装配置pandas需要配置许多依赖的库,而且安装十分麻烦. 解决方法:可以用Anaconda为开发环境,Anaconda内置了许多有关数据清洗和算法的库. 1.安装pandas首先需要安装Numpy和python-dateutil(可以直接在控制控制台pip安装),然后再配置pandas.2.安装好Anaconda后,启用命令行窗口输入 jupyter notebook.3.在默认浏览器新建jupyter,配置jupyter界面右侧new下拉列表,选择pytho

第五篇 pandas??

pandas含有使数据清洗和分析?作变得更快更简单的数据结构和操作?具.pandas经常和其它?具?同使?,如数值计算?具NumPy和SciPy,分析库statsmodels和scikit-learn,和数据可视化库matplotlib.pandas是基于NumPy数组构建的,特别是基于数组的函数和不使?for循环的数据处理. pandas与NumPy的不同:pandas采?了?量的NumPy编码?格,不同是pandas是专?为处理表格和混杂数据设计的.?NumPy更适合处理统?的数值数组数据.

机器学习中的数据清洗与特征处理综述

背景 随着美团交易规模的逐步增大,积累下来的业务数据和交易数据越来越多,这些数据是美团做为一个团购平台最宝贵的财富.通过对这些数据的分析和挖掘,不仅能给美团业务发展方向提供决策支持,也为业务的迭代指明了方向.目前在美团的团购系统中大量地应用到了机器学习和数据挖掘技术,例如个性化推荐.筛选排序.搜索排序.用户建模等等,为公司创造了巨大的价值.本文主要介绍在美团的推荐与个性化团队实践中的数据清洗与特征挖掘方法.主要内容已经在内部公开课"机器学习InAction系列"讲过,本博客的内容主要是

数据质量及数据清洗方法

先对其进行介绍:    数据清洗(Data cleaning)– 对数据进行重新审查和校验的过程,目的在于删除重复信息.纠正存在的错误,并提供数据一致性.[1] 数据清洗从名字上也看的出就是把“脏”的“洗掉”,指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等.因为数据仓库中的数据是面向某一主题的数据的集合,这些数据从多个业务系统中抽取而来而且包含历史数据,这样就避免不了有的数据是错误数据.有的数据相互之间有冲突,这些错误的或有冲突的数据显然是我们不想要的