python 处理数据类型data_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 Wangdachui4000
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 pay1 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', '4000'],
['Linling', '5000'],
['Niuyun', '6000']], dtype=object)
DataFrame的基本操作:
取DataFrame对象的行和列
>>> frame
name pay
1 Wangdachui 4000
2 Linling 5000
3 Niuyun 6000
>>> frame['name']1Wangdachui2Linling3Niuyun
Name: name, dtype: object>>>frame.pay1 4000
2 5000
3 6000Name: pay, dtype: object
取特定的行或列
>>> frame.iloc[:2,1]#取第0,1行的第1列1 4000
2 5000Name: pay, dtype: object>>> frame.iloc[:1,0]#取第0行的第0列1Wangdachui
Name: name, dtype: object>>> frame.iloc[2,1]#取第2行的第1列'6000'
>>> frame.iloc[2]#取第2行
name Niuyun
pay6000Name:3, dtype: object
DataFrame对象的修改和删除
>>> frame['name']= 'admin'
>>>frame
name pay1 admin 4000
2 admin 5000
3 admin 6000
>>> del frame['pay']>>>frame
name1admin2admin3 admin
DataFrame的统计功能
找最低工资和工资大于5000的人
>>>frame
name pay1 Wangdachui 4000
2 Linling 5000
3 Niuyun 6000
>>>frame.pay.min()'4000'
>>> frame[frame.pay >= '5000']
name pay2 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 pay1 Wangdachui 4000
2 Linling 5000
3 Niuyun 6000
(1)添加列
添加列可以直接赋值,例如给frame添加tax列:
>>> frame['tax'] = [0.05,0.05,0.1]>>>frame
name pay tax1 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 tax1 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 tax1 Wangdachui 4000 0.05
2 Linling 5000 0.05
3 Niuyun 6000 0.10
>>> frame.drop('tax',axis = 1)
name pay1 Wangdachui 4000
2 Linling 5000
3 Niuyun 6000
5 Liuxi 5000
此时frame没有受影响
>>>frame
name pay tax1 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 tax1 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 tax1 Wangdachui 4000 0.03
2 Linling 5000 0.03
3 Niuyun 6000 0.03
5 Liuxi 9800 0.05
python 处理数据类型data_python数据类型之pandas—DataFrame相关推荐
- python将ElasticSearch索引数据读入pandas dataframe实战
python将ElasticSearch索引数据读入pandas dataframe实战 # 导入基础包和库 import pandas as pdpd.set_option('display.max ...
- python数据去重的函数_python pandas dataframe 去重函数的具体使用
今天笔者想对pandas中的行进行去重操作,找了好久,才找到相关的函数 先看一个小例子 from pandas import Series, DataFrame data = DataFrame({' ...
- python读取csv最后一行_Python pandas Dataframe来自csv的第一行和最后一行
全部 – 我期待从一个非常大的csv的第一行和最后一行创建一个pandas DataFrame.本练习的目的是能够轻松地从这些csv文件中的第一个和最后一个条目中获取一些属性.我使用以下方法抓住csv ...
- python中change的用法_Python Pandas dataframe.pct_change()用法及代码示例
Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas dataframe.pct ...
- python中mean的用法_Python Pandas dataframe.mean()用法及代码示例
Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas dataframe.mea ...
- python中convert函数用法_Python Pandas DataFrame.tz_convert用法及代码示例
Pandas DataFrame是带有标签轴(行和列)的二维大小可变的,可能是异构的表格数据结构.算术运算在行和列标签上对齐.可以将其视为Series对象的dict-like容器.这是 Pandas ...
- python中info的用法_Python pandas.DataFrame.info函数方法的使用
DataFrame.info(self, verbose=None, buf=None, max_cols=None, memory_usage=None, null_counts=None) [so ...
- python中fillna函数_在pandas dataframe中写一个用户定义的fillna函数,用条件填充np.nan不同的值...
考虑以下pandas数据帧: import pandas as pd change = [0.475, 0.625, 0.1, 0.2, -0.1, -0.75, 0.1, -0.1, 0.2, -0 ...
- python中mean的用法_Python pandas.DataFrame.mean函数方法的使用
DataFrame.mean(self, axis=None, skipna=None, level=None, numeric_only=None, **kwargs)[source] 返回所请求轴 ...
最新文章
- mysql学习一:DB、DBMS、SQL之间的联系
- 华为云IoT提出泛在新联接,让万物皆可联
- 论文阅读: Direct Monocular Odometry Using Points and Lines
- 单片机设置12分频c语言,AT89C51单片机,如何实现延迟一秒
- workman php教程_workerman搭建websocket入门教程,简单实用
- POJ 2965 开冰箱的门(回溯)
- C语言的inline
- 高效的java异常处理
- Android studio 导包时,容易出现的问题【包括最新版本的问题】
- webpack,vue中定义的别名怎么在模板, css sass less的图片地址上使用
- 终极算法【4】——联结学派
- Latex学习笔记(十五)特殊符号的插入
- USB摄像头录制视频
- 自家小程序 如何实现定点跳转其他(比如:京东,天猫,淘宝)的小程序的具体店铺
- jzoj 3837 心灵终结
- 多环境配置的时候报while scanning for the next token found character ‘@‘ that cannot start any token【完全解决方法】
- 小步快跑是这样玩的(上)
- 挺住! “6·18” | 万亿消费狂欢背后的IT构建
- SimpleMind Pro(电脑版思维导图软件)官方中文版V1.30.0.6068下载 | 电脑版思维导图软件哪个好用?
- VHDL出现综合错误:“ERROR:Xst:827 - file_name Line xx: Signal xx cannot be synthesized, bad synchronous desc