pandas的数据结构——DataFrame

DataFrame

DataFrame是一个表格性的数据结构,它含有一组有序数列,每类可以是不同的值类型(数值、字符串、布尔值等)

from pandas import Series,DataFrame
import pandas as pd 
import numpy as np
data = {'英雄':['李白','程咬金','公孙离','芈月','典韦'],
         '定位':['刺客','坦克','射手','法师','战士'],
         '路线':['野区','上路','下路','中路','野区']}
frame = DataFrame(data)

frame
Out[54]: 
    英雄  定位  路线
0   李白  刺客  野区
1  程咬金  坦克  上路
2  公孙离  射手  下路
3   芈月  法师  中路
4   典韦  战士  野区

给frame加一个索引值

frame2 = DataFrame(data,columns=['英雄','路线','定位','胜率'],
                   index=['一','二','三','四','五'] )
frame2
Out[18]: 
    英雄  路线  定位   胜率
一   李白  野区  刺客  NaN
二  程咬金  上路  坦克  NaN
三  公孙离  下路  射手  NaN
四   芈月  中路  法师  NaN
五   典韦  野区  战士  NaN

In [19]: frame2.columns
Out[19]: Index(['英雄', '路线', '定位', '胜率'], dtype='object')

In [20]: frame2['英雄']
Out[20]: 
一     李白
二    程咬金
三    公孙离
四     芈月
五     典韦
Name: 英雄, dtype: object

In [22]: frame2.ix['三']
__main__:1: DeprecationWarning: 
.ix is deprecated. Please use
.loc for label based indexing or
.iloc for positional indexing
See the documentation here:
http://pandas.pydata.org/pandas-docs/stable/
indexing.html#ix-indexer-is-deprecated
Out[22]: 
英雄    公孙离
路线     下路
定位     射手
胜率    NaN
Name: 三, dtype: object

再添加一列胜率

In [23]: frame2['胜率'] = 50
In [24]: frame2
Out[24]: 
     英雄  路线  定位  胜率
一   李白  野区  刺客  50
二  程咬金  上路  坦克  50
三  公孙离  下路  射手  50
四   芈月  中路  法师  50
五   典韦  野区  战士  50

In [29]: frame2['胜率'] = np.arange(5)
In [30]: frame2
Out[30]: 
    英雄  路线  定位  胜率
一   李白  野区  刺客   0
二  程咬金  上路  坦克   1
三  公孙离  下路  射手   2
四   芈月  中路  法师   3
五   典韦  野区  战士   4

通过series来单独给胜率赋值

In [36]: val = Series([55,57,52],index = ['一','三','五'])
In [37]: frame2['胜率'] = val
In [38]: frame2
Out[38]: 
    英雄  路线  定位    胜率
一   李白  野区  刺客  55.0
二  程咬金  上路  坦克   NaN
三  公孙离  下路  射手  57.0
四   芈月  中路  法师   NaN
五   典韦  野区  战士  52.0

再添加一列布尔值

In [39]: frame2['魔法'] = frame2.英雄 == '芈月'
In [40]: frame2
Out[40]: 
    英雄  路线  定位    胜率     魔法
一   李白  野区  刺客  55.0  False
二  程咬金  上路  坦克   NaN  False
三  公孙离  下路  射手  57.0  False
四   芈月  中路  法师   NaN   True
五   典韦  野区  战士  52.0  False

转置

In [42]: frame2.T
Out[42]: 
        一      二      三     四      五
英雄     李白    程咬金    公孙离    芈月     典韦
路线     野区     上路     下路    中路     野区
定位     刺客     坦克     射手    法师     战士
胜率     55    NaN     57   NaN     52
魔法  False  False  False  True  False

给index和columns命名

frame2.index.name = '序号';frame2.columns.name = '目录'
frame2
Out[62]: 
目录   英雄  路线  定位    胜率     魔法
序号                          
一    李白  野区  刺客  55.0  False
二   程咬金  上路  坦克   NaN  False
三   公孙离  下路  射手  57.0  False
四    芈月  中路  法师   NaN   True
五    典韦  野区  战士  52.0  False

values的实行也会以二位ndarray的形式返回DataFrame中的数据

frame2.values
Out[60]: 
array([['李白', '野区', '刺客', 55.0, False],
       ['程咬金', '上路', '坦克', nan, False],
       ['公孙离', '下路', '射手', 57.0, False],
       ['芈月', '中路', '法师', nan, True],
       ['典韦', '野区', '战士', 52.0, False]], dtype=object)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pandas是一个开源的Python数据分析库,提供了多种数据结构,其中包括DataFrame和Panel。DataFramepandas中最常用的数据结构之一,它是一个二维的数据结构,数据以行和列的表格方式排列,可以执行各种行列操作和算术运算。通过pandasDataFrame构造函数,我们可以创建一个DataFrame对象,传入数据、索引、列名等参数来构建DataFrame对象。 另外,pandas还提供了Panel这个数据结构,它是一个三维的数据结构,可以看作是DataFrame的容器,可以存储多个DataFrame。通过pandas的Panel构造函数,我们可以创建一个空的Panel对象,也可以传入数据、items、major_axis、minor_axis等参数来构建一个具有数据的Panel对象。 对于DataFrame,我们可以指定索引和列名来创建一个具有特定结构的DataFrame。在创建DataFrame时,如果给定的索引和列名的长度与数据的维度不匹配,将会报错。例如,在给定的数据列表中,如果每个内层列表的长度与列名的长度不一致,将会报错。 综上所述,pandas提供了多种数据结构,包括DataFrame和Panel,它们可以用于对数据进行分析和操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Pandas数据结构分析](https://blog.csdn.net/m0_58387972/article/details/123302776)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python3快速入门(十三)——Pandas数据结构](https://blog.csdn.net/cdqvkn73338/article/details/100959261)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值