python-pandas学习笔记
文章目录
- 读写文件
- 一般读写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学习笔记相关推荐
- python -pandas学习笔记
认识Pandas Pandas是数据分析三剑客之一,是python的核心数据分析库 Pandas能够处理的数据类型 sql或者excel类似的数据 有序或无序的时间序列序列数据 带行或标签的矩阵数据 ...
- 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 ...
- python数据挖掘学习笔记】十九.鸢尾花数据集可视化、线性回归、决策树花样分析
#2018-04-05 16:57:26 April Thursday the 14 week, the 095 day SZ SSMR python数据挖掘学习笔记]十九.鸢尾花数据集可视化.线性回 ...
- python数据挖掘学习笔记】十四.Scipy调用curve_fit实现曲线拟合
#2018-03-28 10:02:08 March Wednesday the 13 week, the 087 day SZ SSMR python数据挖掘学习笔记]十四.Scipy调用curve ...
- Python数据挖掘学习笔记】九.回归模型LinearRegression简单分析氧化物数据
#2018-03-23 16:26:20 March Friday the 12 week, the 082 day SZ SSMR [Python数据挖掘学习笔记]九.回归模型LinearRegre ...
- 深度学习常用python库学习笔记
深度学习常用python库学习笔记 常用的4个库 一.Numpy库 1.数组的创建 (1)np.array() (2)np.zeros() (3)np.ones() (4)np.empty() (5) ...
- Machine Learning with Python Cookbook 学习笔记 第8章
Chapter 8. Handling Images 前言 本笔记是针对人工智能典型算法的课程中Machine Learning with Python Cookbook的学习笔记 学习的实战代码都放 ...
- 莫烦Python NumpyPandas 学习笔记
莫烦Python Numpy&Pandas 学习笔记 原文(视频)地址:https://www.bilibili.com/video/BV1Ex411L7oT 1. 安装 numpy官方网站: ...
- pandas学习笔记之DateFrame
pandas学习笔记之DateFrame 文章目录 pandas学习笔记之DateFrame 1.DateFrame的创建 1)认识DataFrame对象 2)由二维列表创建(默认index和colu ...
- [Pandas 学习笔记] - No.1 pandas学习笔记
pandas学习笔记 pandas是基于numpy开发出的数据分析包,用于高效地操作大型数据集.pandas的数据结构有三种 分别为 series,dataframe和panel,对应一维,二维,三维 ...
最新文章
- 百度Apollo:CTO级无人车大牛不稀缺,我们这也就百八十个吧
- UBUNTU下的中文输入法:fcitx 4.x with sunpinyin
- 【64QAM同步】基于FPGA/MATLAB的64QAM同步系统的实现
- 011——数组(十一)array_merge array_merge_recursive array_change_key_case
- 太极发送卡片软件_QQ卡片式消息一键发送app
- win7系统笔记本电脑开机蓝屏怎么办
- Redis发布订阅机制
- 干货:Java并发编程系列之volatile(二)
- CSS-返回顶部代码
- 非极大值抑制算法详解
- OpenCV Python 椭圆 和 FDDB 数据库
- dell服务器经常自动关机,戴尔电脑老是自动关机的解决方法
- java 取余 负数_Java中有关负数取余的计算
- 第五节 B-S看涨看跌期权定价
- 写日报、写日报,每天都要写,写工作日报到底有什么意义?
- java源码解读 pdf_好家伙!这一篇文章就给你讲明白了Java并发实现原理之JDK源码剖析(PDF文档)...
- 《需求工程——软件建模与分析》阅读笔记3
- Linux Shell 编程语法
- TabLayout简单例子
- 探索测试-大富翁KYM练习笔记