Pandas包构建DataFrame的几种方式

1. Pandas

Pandas是python的一个第三方包,是一个结构化数据工具集,能够更加灵活、快速的对数据进行清洗和处理,适用于单击大数据量的数据分析和数据开发

使用pandas包之前,首先安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pandas
程序中再导入该包

import pandas as pd

2. 构建Series

Pandas有两个重要的数据结构:Series 和 DataFrame
DataFrame是一个二维表格对象,包括行和固定的列且每列数据类型一致。而Series就是DataFrame的列对象,包括数据列和索引列,若数据没有指定索引列,会自动创建一个0到N-1长度为N的整数型索引列

	# 1.通过列表创建
    lss = pd.Series([1, 2, 3])
    lss = pd.Series([1, 2, 3], index=['A', 'B', 'C'])

    # 2.使用元组创建
    tss = pd.Series((1, 2, 3, 4, 5, 6))

    # 3.使用字典创建
    mss = pd.Series({'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6})
    print(mss)

3.Serial转DataFrame

   # 1.Series对象转DataFrame
    df = mss.to_frame()
    df = mss.reset_index()

4. 本地集合方式构建DataFrame

    # 2. 字典、列表组合创建df,使用默认自增索引(形成了一张纵表,数据按列存放)
    mldata = {
        '温度': [25, 31, 28, 37, 40],
        '湿度': [80, 71, 75, 69, 70],
        '日期': ['2023-06-30', '2023-07-01', '2023-07-02', '2023-07-03', '2023-07-07']
    }
    mldf = pd.DataFrame(data=mldata)

    # 3. 元组、列表组合创建df,使用默认自增索引(形成了一张横表,数据横着放)
    tldata = [
        ('2023-06-30', '2023-07-01', '2023-07-02', '2023-07-03', '2023-07-07'),
        (80, 71, 75, 69, 70), (25, 31, 28, 37, 40)
    ]
    tldf = pd.DataFrame(data=tldata)
    
     # 4.列表、列表组合构建df
    lldata = [
        ['1960-05-07', '刘海柱', '职业法师'],
        ['1978-09-01', '赵金龙', '大力哥'],
        ['1984-12-27', '周立齐', '窃格瓦拉'],
        ['1969-01-24', '于谦', '相声皇后']
    ]
    lldf = pd.DataFrame(data=lldata, columns=['birthday', 'name', 'AKA'])
    print(lldf)

5. DataFrame接收本地文件

lfdf = pd.read_csv('../../data/E_Commerce_Data.csv', sep=',', encoding='gbk')

sep参数, 指定字段之间的分隔符号。默认的分隔符号为逗号, 当文件中的字段之间的分隔符号不是逗号的时候, 我们可以采用此参数来调整

encoding参数 指定编码格式。常见的编码格式有:ASCII、GB2312、UTF8、GBK 等

多文件格式数据读写
在这里插入图片描述

6. 读数据库返回DataFrame

如果想利用pandas和MySQL数据库进行交互,需要先安装与数据库交互所需要的python包
pip install pymysql == 1.0.2
pip install sqlalchemy == 1.4.31

然后程序中导入该包:

from sqlalchemy import create_engine

python包操作数据库的方式

   lfdf = pd.read_csv('../../data/E_Commerce_Data.csv', sep=',', encoding='gbk')
   # 创建数据库引擎,传入uri规则的字符
   # mysql 表示数据库类型
   # pymysql 表示python操作数据库的包
   # root:root 表示数据库的账号和密码,用冒号连接
   # node1:3306/test 表示数据库的ip和端口,以及名叫test的数据库
   # charset=utf8 规定编码格式
   engine = create_engine('mysql+pymysql://root:123456@node1:3306/test?charset=utf8')
   # df.to_sql()方法将df数据快速写入数据库
   # 第一个参数为数据表的名称
   # 第二个参数engine为数据库交互引擎
   # index=False 表示不添加自增主键
   # if_exists='append' 表示如果表存在就添加,表不存在就创建表并写入
   lfdf.to_sql('invoice_info', engine, index=False, if_exists='append')
   # 读取整张表, 返回dataFrame
   # 参数1表名,参数2数据库连接引擎对象
   pd.read_sql('invoice_info', engine)
   # 使用SQL语句获取数据,返回dataframe
   # 参数1:sql语句,参数2:数据库连接引擎对象
   df= pd.read_sql('select * from invoice_info where country="Kingdom"', engine)

   print(lfdf)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值