文章目录

  • 读写文件
    • 一般读写xlsx/csv文件
    • 读写有多个子表的excel表格
  • 查询、遍历
    • 获取表头信息
    • 按行遍历
    • 获取某一行并转为list数据
    • 判断表格是否为空
    • 按照列名筛选出整行信息
    • 按单元格值筛选另一列信息
    • 获取单个单元格以及单元格内容
    • 二维表的美观显示
  • 修改
    • 修改单个表格的内容
  • 增删表格
    • 从其他类型对象生成DataFrame对象
    • 增加一列
    • 删除一列
    • 增加一行
    • 删除行
  • 拼接表格
    • 后缀拼接单行
  • 持续更新中。。。

读写文件

一般读写xlsx/csv文件

import pandas as pd'''
filename: 为文件名或者路径,filename也可以是一个url
sheet_name: 指定要读取的xlsx文件的子表,默认为0
返回值df为DataFrame类型的二维数据表格,下同
'''
df = pandas.read_excel(filename,sheet_name = 0) # # 写入xlsx格式文件
df.to_excel(filename,index = False) # 不写入行索引,默认是写入的# 读取csv文件
df = pandas.read_csv(filename)#写入csv文件
df.to_csv(filename,index = False,sep = ',') # sep为指定的分隔符

读写有多个子表的excel表格

import pandas# 读取所有子表
df = pandas.read_excel(file_name,sheet_name = None)

查询、遍历

获取表头信息

header_info = df.columns.values # 返回的是numpy.ndarray类型数据
header_info = df.columns.values.tolist() # 转为list

按行遍历

data = {'a': {'x': [1, 1], 'y': [2, 1], 'z': [3, 1]},'b': {'x': [1, 2], 'y': [2, 2], 'z': [3, 2]},'c': {'x': [1, 3], 'y': [2, 3], 'z': [3, 3]}}
data_pd = pd.DataFrame(data)print(data_pd)for row in data_pd.index:print(data_pd.loc[row]['a'])for row_id in range(data_pd.shape[0]):print(data_pd.iloc[row_id]['a'])for index, row in data_pd.iterrows():print(row['a'])'''
输出:a       b       c
x  [1, 1]  [1, 2]  [1, 3]
y  [2, 1]  [2, 2]  [2, 3]
z  [3, 1]  [3, 2]  [3, 3][1, 1]
[2, 1]
[3, 1]
'''

获取某一行并转为list数据

import pandas as pdorder_list = pd.DataFrame(np.array([[12,3,1],[13,4,0],[17,4,5],[16,5,2],[14,3,1]]),columns = ['capacity required','unit returns','time remaining'])order1 = np.array(order_list.iloc[1])
order1 = order1.tolist()

判断表格是否为空

df.empty # 若为空返回True,否则返回False

按照列名筛选出整行信息

# 筛选出二维表中所有某列值为“XX”的全部行信息
df_find = df_books[df_books['出版年份'] == 2015] # 打印出出版年份所有出版年份为2015的书籍信息

按单元格值筛选另一列信息

# 筛选出所有某列值为“XX”的“YY”列信息,返回的是 Series 对象
df_find = df_books.loc[df_books['出版年份'] == 2015,'书名'] # 打印出出版年份所有出版年份为2015的书名

获取单个单元格以及单元格内容

# 筛选出所有某列值为“XX”的“YY”列信息,返回的是 Series 对象
# 筛选出图书编号为15的书名,这里的图书编号为二维表的主键,所以返回的Series对象里面只有一个元素
df_find = df_books.loc[df_books['图书编号'] == 15,'书名']# 获取单个单元格内容
df_find_cont = df_books.loc[df_books['图书编号'] == 15,'书名'].item() # 返回的是str类型的对象

二维表的美观显示

强烈推荐用prettytable库里面的接口显示二维表格,下面是显示效果。

对应的代码:

import pandas
from prettytable import PrettyTabledf_readers = pandas.read_excel("./readers.xlsx",sheet_name = 0)
tb_header = df_readers.columns.values.tolist() # 获取表头信息,并转为list
table = PrettyTable(tb_header) # 创建显示表格rows = df_readers.values.tolist() # 获取表格内容,不含表头,转为2维listfor r in rows:table.add_row(r)
print(table)

修改

修改单个表格的内容

# 先筛选出指定单元格,然后赋值即可
df_find = df_books.loc[df_books['图书编号'] == 15,'书名'] = "Python编程——从入门到放弃"

增删表格

从其他类型对象生成DataFrame对象

df = pandas.DataFrame(new_dict) # 字典
df = pandas.DataFrame(np_2arr) # numpy中的二维数组或者用2维list也行# 注意:字典生成的DataFrame会按照键值生成表头,numpy数组或2_list用默认的表头

增加一列

# 直接操作新列名,赋予所有列一个初始值即可
df['新列名'] = new_col_value

删除一列

# 方法一
del df['列名'] # 方法二
'''
colName:要删除的列名
axis:为0时表示删除的是行索引,为1时表示删除的是列名
inplace:默认值为False,表示不修改原df,返回一个新的df;True时表示在原df上修改。
'''
df_new = df.drop('colName',axis = 1,inplace = False)

增加一行

用loc方法

df.loc[end+1] = list_array # 与新增列类似

删除行

其实每一次筛选就是一次删除。

# 删除’col_name‘列中值为“col_value”的行,注意返回值
df = df[~df['col_name'].isin([col_value])]

拼接表格

后缀拼接单行

appen方法,该方法默认不会修改当前表格,而是返回一个新的DataFrame类型的数据。

'''
df1与df2的表头需要一致,ignore_index表示忽略行索引。
df2可以是表格,也可以是字典或类似字典格式的对象如json,不管是哪种,键数要与df1保持一致
'''
df_new = df1.append(df2,ignore_index = True)

持续更新中。。。

python-pandas学习笔记相关推荐

  1. python -pandas学习笔记

    认识Pandas Pandas是数据分析三剑客之一,是python的核心数据分析库 Pandas能够处理的数据类型 sql或者excel类似的数据 有序或无序的时间序列序列数据 带行或标签的矩阵数据 ...

  2. python数据挖掘学习笔记】十.Pandas、Matplotlib、PCA绘图实用代码补充

    #2018-03-23 18:56:38 March Friday the 12 week, the 082 day SZ SSMR https://blog.csdn.net/eastmount/a ...

  3. python数据挖掘学习笔记】十九.鸢尾花数据集可视化、线性回归、决策树花样分析

    #2018-04-05 16:57:26 April Thursday the 14 week, the 095 day SZ SSMR python数据挖掘学习笔记]十九.鸢尾花数据集可视化.线性回 ...

  4. python数据挖掘学习笔记】十四.Scipy调用curve_fit实现曲线拟合

    #2018-03-28 10:02:08 March Wednesday the 13 week, the 087 day SZ SSMR python数据挖掘学习笔记]十四.Scipy调用curve ...

  5. Python数据挖掘学习笔记】九.回归模型LinearRegression简单分析氧化物数据

    #2018-03-23 16:26:20 March Friday the 12 week, the 082 day SZ SSMR [Python数据挖掘学习笔记]九.回归模型LinearRegre ...

  6. 深度学习常用python库学习笔记

    深度学习常用python库学习笔记 常用的4个库 一.Numpy库 1.数组的创建 (1)np.array() (2)np.zeros() (3)np.ones() (4)np.empty() (5) ...

  7. Machine Learning with Python Cookbook 学习笔记 第8章

    Chapter 8. Handling Images 前言 本笔记是针对人工智能典型算法的课程中Machine Learning with Python Cookbook的学习笔记 学习的实战代码都放 ...

  8. 莫烦Python NumpyPandas 学习笔记

    莫烦Python Numpy&Pandas 学习笔记 原文(视频)地址:https://www.bilibili.com/video/BV1Ex411L7oT 1. 安装 numpy官方网站: ...

  9. pandas学习笔记之DateFrame

    pandas学习笔记之DateFrame 文章目录 pandas学习笔记之DateFrame 1.DateFrame的创建 1)认识DataFrame对象 2)由二维列表创建(默认index和colu ...

  10. [Pandas 学习笔记] - No.1 pandas学习笔记

    pandas学习笔记 pandas是基于numpy开发出的数据分析包,用于高效地操作大型数据集.pandas的数据结构有三种 分别为 series,dataframe和panel,对应一维,二维,三维 ...

最新文章

  1. 百度Apollo:CTO级无人车大牛不稀缺,我们这也就百八十个吧
  2. UBUNTU下的中文输入法:fcitx 4.x with sunpinyin
  3. 【64QAM同步】基于FPGA/MATLAB的64QAM同步系统的实现
  4. 011——数组(十一)array_merge array_merge_recursive array_change_key_case
  5. 太极发送卡片软件_QQ卡片式消息一键发送app
  6. win7系统笔记本电脑开机蓝屏怎么办
  7. Redis发布订阅机制
  8. 干货:Java并发编程系列之volatile(二)
  9. CSS-返回顶部代码
  10. 非极大值抑制算法详解
  11. OpenCV Python 椭圆 和 FDDB 数据库
  12. dell服务器经常自动关机,戴尔电脑老是自动关机的解决方法
  13. java 取余 负数_Java中有关负数取余的计算
  14. 第五节 B-S看涨看跌期权定价
  15. 写日报、写日报,每天都要写,写工作日报到底有什么意义?
  16. java源码解读 pdf_好家伙!这一篇文章就给你讲明白了Java并发实现原理之JDK源码剖析(PDF文档)...
  17. 《需求工程——软件建模与分析》阅读笔记3
  18. Linux Shell 编程语法
  19. TabLayout简单例子
  20. 探索测试-大富翁KYM练习笔记

热门文章

  1. PDF删除页面怎么操作?这几个方法推荐给你
  2. 2009年下半年信息处理技术员考试 备考建议
  3. mybatis plus常用的QueryWrapper条件参数
  4. 游戏测试发版checklist
  5. beeware详解(二):创建beeware项目
  6. 2011台湾游-中台禅寺_我是亲民_新浪博客
  7. js 停顿一秒_[js样式效果]具有停顿效果上下滚动方式
  8. 高新技术企业申报有哪些常见问题
  9. 网站制作开发的步骤和方法
  10. 华电保定计算机学院,华北电力大学(保定)研究生院