• Pandas常用命令


    一.数据导入和导出
    (一)读取csv文件
    1.本地读取

    import pandas as pd
    df = pd.read_csv('tips.csv')  #根据自己数据文件保存的路径填写(p.s.  python填写路径时,要么使用/,要么使用\)
    

    2.网络读取

    import pandas as pd
    data_url = "https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv" #填写url读取
    df = pd.read_csv(data_url)
    

    3.读取数据库

    # 读取mysql 数据
    con = pymysql.connect(host='192.168.159.129',user='root',password="mysql",database='mysql',port=3306,charset='utf8')
    a = pd.read_sql_query('select * from user;',con=con)
    print(type(a))
    

    二.提取和筛选需要的数据

    print(df.head())  #打印数据前五行
    print(df.tail())  #打印数据后5行
    print(df.columns)  #打印列名
    print(df.index)     #打印行名
    print(df.ix[10:20, 0:3])  #打印10~20行前三列数据
    print(df.iloc[[1,3,5],[2,4]])    #提取不连续行和列的数据,这个例子提取的是第1,3,5行,第2,4列的数据
    print(df.iat[3,2])    #专门提取某一个数据,这个例子提取的是第三行,第二列数据(默认从0开始算)
    print(df.drop(df.columns[1, 2], axis = 1)) #舍弃数据前两列
    print(df.drop(df.columns[[1, 2]], axis = 0)) #舍弃数据前两行
    print(df.shape) #打印维度
    print(df.iloc[3]) #选取第3行
    print(df.iloc[2:4]) #选取第2到第3行
    print(df.iloc[0,1]) #选取第0行1列的元素
    
    print(df.dtypes)   # 查看数据类型
    print(df[df.tip > 8 ]) #选取tip列大于8的
    
    #数据筛选同样可以用”或“和”且“作为筛选条件,比如
    df[(df.tip>7)|(df.total_bill>50)] #筛选出小费大于$7或总账单大于$50的数据
    df[(df.tip>7)&(df.total_bill>50)] #筛选出小费大于$7且总账单大于$50的数据
    df[['day','time']][(df.tip>7)|(df.total_bill>50)]  #假如加入了筛选条件后,我们只关心day和time
    print(df.describe()) #描述性统计
    
    

    三.数据处理
    1.数据转置
    print(df.T)
    2.数据排序
    print(df.sort_values(by='size',ascending=False)) # 根据 size 列进行排序,ascending=False 降序。默认升序

    四.缺失值处理

    1.填充缺失值
    df['tip'].fillna("hello") # 指定数据代替缺失值
    df['tip'].fillna(method='pad') #用前一个数据代替缺失值
    df['tip'].fillna(method='bfill') #用后一个数据代替缺失值

    2.删除缺失值
    df['tip'].dropna(axis=0) #删除缺失行
    df['tip'].dropna(axis=1) #删除缺失列

    五.数据分组

    group = df.groupby('day') #按day这一列进行分组
    print(group.first())#打印每一组的第一行数据
    print(group.last())#打印每一组的最后一行数据

    六.保持数据

    1.写入数据库

    # 导入必要模块
    import pandas as pd
    from sqlalchemy import create_engine
    
    # 初始化数据库连接,使用pymysql模块
    # MySQL的用户:root, 密码:mysql, 端口:3306,数据库:mydb
    # 读取csv 数据
    df = pd.read_csv('tips.csv')
    engine = create_engine('mysql+pymysql://root:mysql@192.168.159.129:3306/my_data?charset=utf8')
    df.to_sql('tips', con=engine, index=True,if_exists='fail')  # 将df 数据读取写入到mysql 数据库,表名为 tips,index=True 表示写入行索引
    
    
    if_exists 存在“fail”、“replace”、“append”,则默认为“fail”
    
    如果表已经存在,如何进行操作。
    
    *fail:引发ValueError。
    
    *replace:在插入新值之前删除表。
    
    *append:在现有表中插入新值。
    
    
  • 相关阅读:
    微信小程序UI自动化: minium文档部署02
    微信小程序UI自动化: 选择工具/框架01
    gitalb学习:02gitlab runner安装
    gitlab学习: 01安装gitlab
    01.Python中一切皆对象
    Prometheus+Noe Expoter+Grafana:资源监控初体验(基于cenots7,没使用docker)
    01. 判断三角形的函数
    Locust性能测试:上手初体验
    史上最全的邮箱测试方法!
    使用 Python 处理非对称加密,竟然如此简单
  • 原文地址:https://www.cnblogs.com/huangguifeng/p/10213496.html
Copyright © 2020-2023  润新知