python数据类型之pandas—DataFrame
DataFrame定义:
DataFrame是pandas的两个主要数据结构之一,另一个是Series
—一个表格型的数据结构
—含有一组有序的列
—大致可看成共享同一个index的Series集合
DataFrame创建方式:
默认方式创建:
>>> data = {'name':['Wangdachui','Linling','Niuyun'],'pay':[4000,5000,6000]}
>>> frame = pd.DataFrame(data)
>>> frame
name pay
0 Wangdachui 4000
1 Linling 5000
2 Niuyun 6000
传入索引的方式创建:
>>> data = np.array([('Wangdachui',4000),('Linling',5000),('Niuyun',6000)])
>>> frame = pd.DataFrame(data,index = range(1,4),columns=['name','pay'])
>>> frame
name pay
1 Wangdachui 4000
2 Linling 5000
3 Niuyun 6000
>>> frame.index
RangeIndex(start=1, stop=4, step=1)
>>> frame.columns
Index(['name', 'pay'], dtype='object')
>>> frame.values
array([['Wangdachui', ''],
['Linling', ''],
['Niuyun', '']], dtype=object)
DataFrame的基本操作:
取DataFrame对象的行和列
>>> frame
name pay
1 Wangdachui 4000
2 Linling 5000
3 Niuyun 6000
>>> frame['name']
1 Wangdachui
2 Linling
3 Niuyun
Name: name, dtype: object
>>> frame.pay
1 4000
2 5000
3 6000
Name: pay, dtype: object
取特定的行或列
>>> frame.iloc[:2,1]#取第0,1行的第1列
1 4000
2 5000
Name: pay, dtype: object
>>> frame.iloc[:1,0]#取第0行的第0列
1 Wangdachui
Name: name, dtype: object
>>> frame.iloc[2,1]#取第2行的第1列
''
>>> frame.iloc[2]#取第2行
name Niuyun
pay 6000
Name: 3, dtype: object
DataFrame对象的修改和删除
>>> frame['name']= 'admin'
>>> frame
name pay
1 admin 4000
2 admin 5000
3 admin 6000
>>> del frame['pay']
>>> frame
name
1 admin
2 admin
3 admin
DataFrame的统计功能
找最低工资和工资大于5000的人
>>> frame
name pay
1 Wangdachui 4000
2 Linling 5000
3 Niuyun 6000
>>> frame.pay.min()
''
>>> frame[frame.pay >= '']
name pay
2 Linling 5000
3 Niuyun 6000
案例:
已知有一个列表中存放了一组音乐数据:
music_data = [("the rolling stones","Satisfaction"),("Beatles","Let It Be"),("Guns N'Roses","Don't Cry"),("Metallica","Nothing Else Matters")],请根据这组数据创建一个如下的DataFrame:
singer song_name
1 the rolling stones Satisfaction
2 Beatles Let It Be
3 Guns N'Roses Don't Cry
4 Metallica Nothing Else Matters
方法如下:
>>> import pandas as pd
>>> music_data = [("the rolling stones","Satisfaction"),("Beatles","Let It Be"),("Guns N'Roses","Don't Cry"),("Metallica","Nothing Else Matters")]
>>> music_table = pd.DataFrame(music_data)
>>> music_table
0 1
0 the rolling stones Satisfaction
1 Beatles Let It Be
2 Guns N'Roses Don't Cry
3 Metallica Nothing Else Matters
>>> music_table.index = range(1,5)
>>> music_table.columns = ['singer','song_name']
>>> print(music_table)
singer song_name
1 the rolling stones Satisfaction
2 Beatles Let It Be
3 Guns N'Roses Don't Cry
4 Metallica Nothing Else Matters
DataFrame基本操作补充
DataFrame对象如下:
>>> frame
name pay
1 Wangdachui 4000
2 Linling 5000
3 Niuyun 6000
(1)添加列
添加列可以直接赋值,例如给frame添加tax列:
>>> frame['tax'] = [0.05,0.05,0.1]
>>> frame
name pay tax
1 Wangdachui 4000 0.05
2 Linling 5000 0.05
3 Niuyun 6000 0.10
(2)添加行
添加行可以用loc(标签)和iloc(位置)索引,也可以用append()和concat()方法,这里用loc()方法
>>> frame.loc[5] = {'name':'Liuxi','pay':5000,'tax':0.05}
>>> frame
name pay tax
1 Wangdachui 4000 0.05
2 Linling 5000 0.05
3 Niuyun 6000 0.10
5 Liuxi 5000 0.05
(3)删除对象元素
删除数据可直接用“del数据”的方式进行,但这种方式是直接对原始数据操作,不安全,可利用drop()方法删除指定轴上的数据
>>> frame.drop(5)
name pay tax
1 Wangdachui 4000 0.05
2 Linling 5000 0.05
3 Niuyun 6000 0.10
>>> frame.drop('tax',axis = 1)
name pay
1 Wangdachui 4000
2 Linling 5000
3 Niuyun 6000
5 Liuxi 5000
此时frame没有受影响
>>> frame
name pay tax
1 Wangdachui 4000 0.05
2 Linling 5000 0.05
3 Niuyun 6000 0.10
5 Liuxi 5000 0.05
(4)修改
继承上面的frame,对tax统一修改成0.03
>>> frame['tax'] = 0.03
>>> frame
name pay tax
1 Wangdachui 4000 0.03
2 Linling 5000 0.03
3 Niuyun 6000 0.03
5 Liuxi 5000 0.03
也可以直接用loc()修改
>>> frame.loc[5] = ['Liuxi',9800,0.05]
>>> frame
name pay tax
1 Wangdachui 4000 0.03
2 Linling 5000 0.03
3 Niuyun 6000 0.03
5 Liuxi 9800 0.05
python数据类型之pandas—DataFrame的更多相关文章
- [Python Study Notes]pandas.DataFrame.plot()函数绘图
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
- Python数据分析之pandas基本数据结构:Series、DataFrame
1引言 本文总结Pandas中两种常用的数据类型: (1)Series是一种一维的带标签数组对象. (2)DataFrame,二维,Series容器 2 Series数组 2.1 Series数组构成 ...
- python 数据处理学习pandas之DataFrame
请原谅没有一次写完,本文是自己学习过程中的记录,完善pandas的学习知识,对于现有网上资料的缺少和利用python进行数据分析这本书部分知识的过时,只好以记录的形势来写这篇文章.最如果后续工作定下来 ...
- Python pandas DataFrame操作
1. 从字典创建Dataframe >>> import pandas as pd >>> dict1 = {'col1':[1,2,5,7],'col2':['a ...
- 如何通过Elasticsearch Scroll快速取出数据,构造pandas dataframe — Python多进程实现
首先,python 多线程不能充分利用多核CPU的计算资源(只能共用一个CPU),所以得用多进程.笔者从3.7亿数据的索引,取200多万的数据,从取数据到构造pandas dataframe总共大概用 ...
- Python时间处理,datetime中的strftime/strptime+pandas.DataFrame.pivot_table(像groupby之类 的操作)
python中datetime模块非常好用,提供了日期格式和字符串格式相互转化的函数strftime/strptime 1.由日期格式转化为字符串格式的函数为: datetime.datetime.s ...
- Python之如何删除pandas DataFrame的某一/几列
删除pandas DataFrame的某一/几列: 方法一:直接del DF['column-name'] 方法二:采用drop方法,有下面三种等价的表达式: 1. DF= DF.drop('co ...
- Python pandas.DataFrame调整列顺序及修改index名
1. 从字典创建DataFrame >>> import pandas >>> dict_a = {'],'mark_date':['2017-03-07','20 ...
- Python Pandas -- DataFrame
pandas.DataFrame class pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False) ...
随机推荐
- React页面隐藏#
将 hashHistory 改为 browserHistory 路由用到的,可以在routes.jsx上把hashHistory 改成browserHistory https://github.com ...
- MySQL(3)-MySQL Workbench
远程连接mysql不上,CentOS7下的防火墙关闭命令,别光看iptables的状态. # systemctl stop firewalld # systemctl mask firewalld ...
- 使用Guava的ComparisonChain实现自定义的排序
可以看到使用比较器前,先要写一个实体类,还要实现comparable接口,实现compareTo方法.这个方法一般会返回-1 0 1三个int类型数字,分别表示,对象和传入的对象比较,排序应该在传入的 ...
- CentOS7下 让Docker pull命令使用squid做http代理拉取目标镜像仓库的镜像
场景,如下图所示: 服务器B具有两个网卡,分别和服务器A和服务器C互通,这里想要在服务器C上借助服务器B作为桥梁,拉取镜像仓库服务器A上的镜像. 思路也很简单,在服务器上搭建HTTP代理服务,服务器C ...
- Android studio3.1.3 打包jar,混淆
最近公司需要将数据进行打包提供给用户,需要我们提供数据解析的jar给用户,为了防止数据格式的泄露,需要进行混淆.这里记录一下封装jar并混淆的过程. 1.创建module 之后创建了几个需要演示混淆的 ...
- Socket网络编程--简单Web服务器(1)
这一次的Socket系列准备讲Web服务器.就是编写一个简单的Web服务器,具体怎么做呢?我也不是很清楚流程,所以我找来了一个开源的小的Web服务器--tinyhttpd.这个服务器才500多行的代码 ...
- Fluent动网格【4】:DEFINE_CG_MOTION宏实例
DEFINE_CG_MOTION宏通常用于定义刚体部件的运动.本文以一个简单的案例描述DEFINE_CG_MOTION的使用方法. 案例描述 本次计算的案例如图所示.在计算域中有一个刚体块(图中的小正 ...
- IOS开发之Core Location
IOS 支持三种检测当前位置的方式:手机基站.Wi-Fi.和GPS,其中GPS是经度最高的,同时也是最耗费手机电量的.一般情况下在室内是无法通过GPS获 取位置信息的,通过Wi-Fi获取位置的原理是通 ...
- SOLID原则 【转】
S.O.L.I.D 是面向对象设计(OOD)和面向对象编程(OOP)中的几个重要编码原则(Programming Priciple)的首字母缩写. 面向对象设计的原则 SRP The Single ...
- Java知多少(91)对话框
对话框是为了人机对话过程提供交互模式的工具.应用程序通过对话框,或给用户提供信息,或从用户获得信息.对话框是一个临时窗口,可以在其中放置用于得到用户输入的控件.在Swing中,有两个对话框类,它们是J ...