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相关推荐

  1. python将ElasticSearch索引数据读入pandas dataframe实战

    python将ElasticSearch索引数据读入pandas dataframe实战 # 导入基础包和库 import pandas as pdpd.set_option('display.max ...

  2. python数据去重的函数_python pandas dataframe 去重函数的具体使用

    今天笔者想对pandas中的行进行去重操作,找了好久,才找到相关的函数 先看一个小例子 from pandas import Series, DataFrame data = DataFrame({' ...

  3. python读取csv最后一行_Python pandas Dataframe来自csv的第一行和最后一行

    全部 – 我期待从一个非常大的csv的第一行和最后一行创建一个pandas DataFrame.本练习的目的是能够轻松地从这些csv文件中的第一个和最后一个条目中获取一些属性.我使用以下方法抓住csv ...

  4. python中change的用法_Python Pandas dataframe.pct_change()用法及代码示例

    Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas dataframe.pct ...

  5. python中mean的用法_Python Pandas dataframe.mean()用法及代码示例

    Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas dataframe.mea ...

  6. python中convert函数用法_Python Pandas DataFrame.tz_convert用法及代码示例

    Pandas DataFrame是带有标签轴(行和列)的二维大小可变的,可能是异构的表格数据结构.算术运算在行和列标签上对齐.可以将其视为Series对象的dict-like容器.这是 Pandas ...

  7. python中info的用法_Python pandas.DataFrame.info函数方法的使用

    DataFrame.info(self, verbose=None, buf=None, max_cols=None, memory_usage=None, null_counts=None) [so ...

  8. 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 ...

  9. python中mean的用法_Python pandas.DataFrame.mean函数方法的使用

    DataFrame.mean(self, axis=None, skipna=None, level=None, numeric_only=None, **kwargs)[source] 返回所请求轴 ...

最新文章

  1. mysql学习一:DB、DBMS、SQL之间的联系
  2. 华为云IoT提出泛在新联接,让万物皆可联
  3. 论文阅读: Direct Monocular Odometry Using Points and Lines
  4. 单片机设置12分频c语言,AT89C51单片机,如何实现延迟一秒
  5. workman php教程_workerman搭建websocket入门教程,简单实用
  6. POJ 2965 开冰箱的门(回溯)
  7. C语言的inline
  8. 高效的java异常处理
  9. Android studio 导包时,容易出现的问题【包括最新版本的问题】
  10. webpack,vue中定义的别名怎么在模板, css sass less的图片地址上使用
  11. 终极算法【4】——联结学派
  12. Latex学习笔记(十五)特殊符号的插入
  13. USB摄像头录制视频
  14. 自家小程序 如何实现定点跳转其他(比如:京东,天猫,淘宝)的小程序的具体店铺
  15. jzoj 3837 心灵终结
  16. 多环境配置的时候报while scanning for the next token found character ‘@‘ that cannot start any token【完全解决方法】
  17. 小步快跑是这样玩的(上)
  18. 挺住! “6·18” | 万亿消费狂欢背后的IT构建
  19. SimpleMind Pro(电脑版思维导图软件)官方中文版V1.30.0.6068下载 | 电脑版思维导图软件哪个好用?
  20. VHDL出现综合错误:“ERROR:Xst:827 - file_name Line xx: Signal xx cannot be synthesized, bad synchronous desc

热门文章

  1. rtl8169网卡驱动
  2. 如何在Windows终端中使用电力线,书呆子字体,Cascadia代码,WSL和oh-my-posh进行漂亮提示
  3. 测试月经周期的软件,大姨妈预测app
  4. Java获取去年同月份相同星期的日期算法
  5. 工作中MNU010 至 MNU140表的名称及作用
  6. 平分七筐鱼c语言y,C语言平分7筐鱼代码及解析
  7. 改变未来移动世界的五大技术趋势
  8. redsocks+iptables+socks5服务商
  9. 告诉你十一个腰椎间盘突出症的锻炼方法
  10. 织梦 php 调用栏目,织梦dedecms如何调用当前栏目文章数