DataFrame 的常用操作
dataframe 的常用属性
- 索引--------index
- 元素-------values
- 列名------columns
- 数据类型----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
其他的属性等
- 元素个数------size
- 维度数--------ndim
- 数据形状(行列数目)------shape
print('元素个数:',detail.size)
print('维度数:',detail.ndim)
print('数据形状,',detail.shape)
元素个数: 52801
维度数: 2
数据形状, (2779, 19)
特殊场景的T—转置(行列转换)
print('转置前数据形状:',detail.shape)
print('转置后数据形状:',detail.T.shape)
转置前数据形状: (2779, 19)
转置后数据形状: (19, 2779)
查改增删 DataFrame 数据
- 查看 DataFrame 数据
- 字典访问----单列数据
- 访问属性的方式访问------单列数据
- 单列多行
- 多列多行
- 多行
- head() 和 tail()访问多行
- loc, iloc 单列切片
- loc, iloc 多列切片
- 花式切片
- 条件切片
- 切片比较
- 更改 DataFrame 数据
- 增添 DataFrame 数据
- 删除 行 / 列 数据
描述分析 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 =