【第4章】4.2DataFrame常用操作

DataFrame 的常用操作

dataframe 的常用属性

  1. 索引--------index
  2. 元素-------values
  3. 列名------columns
  4. 数据类型----dtypes

索引

from sqlalchemy import create_engine
import pandas as pd
engine = create_engine('mysql+pymysql://root:981221@localhost/testdb?charset=utf8') # 创建数据库链接
detail = pd.read_sql_table('meal_order_detail1',con=engine) # 已经导入数据库的数据
print('索引:',detail.index)
索引: RangeIndex(start=0, stop=2779, step=1)

元素

print('元素:',detail.values)
元素: [['2956' '417' '610062' ... 'NA' 'caipu/104001.jpg' '1442']
 ['2958' '417' '609957' ... 'NA' 'caipu/202003.jpg' '1442']
 ['2961' '417' '609950' ... 'NA' 'caipu/303001.jpg' '1442']
 ...
 ['6756' '774' '609949' ... 'NA' 'caipu/404005.jpg' '1138']
 ['6763' '774' '610014' ... 'NA' 'caipu/302003.jpg' '1138']
 ['6764' '774' '610017' ... 'NA' 'caipu/302006.jpg' '1138']]

列名

print('列名:',detail.columns)
列名: Index(['detail_id', 'order_id', 'dishes_id', 'logicprn_name',
       'parent_class_name', 'dishes_name', 'itemis_add', 'counts', 'amounts',
       'cost', 'place_order_time', 'discount_amt', 'discount_reason',
       'kick_back', 'add_inprice', 'add_info', 'bar_code', 'picture_file',
       'emp_id'],
      dtype='object')

数据类型

print('数据类型:',detail.dtypes)
数据类型: detail_id                    object
order_id                     object
dishes_id                    object
logicprn_name                object
parent_class_name            object
dishes_name                  object
itemis_add                   object
counts                      float64
amounts                     float64
cost                         object
place_order_time     datetime64[ns]
discount_amt                 object
discount_reason              object
kick_back                    object
add_inprice                  object
add_info                     object
bar_code                     object
picture_file                 object
emp_id                       object
dtype: object

其他的属性等

  1. 元素个数------size
  2. 维度数--------ndim
  3. 数据形状(行列数目)------shape
print('元素个数:',detail.size)
print('维度数:',detail.ndim)
print('数据形状,',detail.shape)
元素个数: 52801
维度数: 2
数据形状, (2779, 19)

特殊场景的T—转置(行列转换)

  • .T.shape
print('转置前数据形状:',detail.shape)
print('转置后数据形状:',detail.T.shape) # 通过查看数据形状(行列数目)来验证结果 
转置前数据形状: (2779, 19)
转置后数据形状: (19, 2779)

查改增删 DataFrame 数据

  1. 查看 DataFrame 数据
  • 字典访问----单列数据
  • 访问属性的方式访问------单列数据
  • 单列多行
  • 多列多行
  • 多行
  • head() 和 tail()访问多行
  • loc, iloc 单列切片
  • loc, iloc 多列切片
  • 花式切片
  • 条件切片
  • 切片比较
  1. 更改 DataFrame 数据
  2. 增添 DataFrame 数据
  3. 删除 行 / 列 数据
  • 删除某列
  • 删除某几行

描述分析 DataFrame 数据

字典访问

  • DataFrame 的单列数据为一个 Series
order_id = detail['order_id'] # 某列
print('order_id的形状:','\n',order_id.shape)
order_id的形状: 
 (2779,)

属性访问的方式访问

  • 可能存在 列名与 pandas 的某些方法重名的问题---------如果会造成程序混乱------是不建议使用的
dishes_name = detail.dishes_name
print('订单中 dishes_name 的形状为:','\n',dishes_name.shape)
订单中 dishes_name 的形状为: 
 (2779,)

单列多行数据获取

  • xxx [ ’ 列名 ’ ] [ n : m ](前闭后开型)
dishes_name5 = detail['dishes_name'][:5]
print('dishes_name 的前5个元素:','\n',dishes_name5)
dishes_name 的前5个元素: 
 0     蒜蓉生蚝
1    蒙古烤羊腿
2     大蒜苋菜
3    芝麻烤紫菜
4      蒜香包
Name: dishes_name, dtype: object

多列的多行

  • xxx.[ [ ’ 列1 ’ ,’ 列2 ’ ] ] [ n : m ] (前闭后开)
  • 前面是------列表, 后面是------切片
orderDish =
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值