yjs09——pandas先容及相关数据结构

打印 上一主题 下一主题

主题 1608|帖子 1608|积分 4824

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.什么是pandas

   同样,pandas、matplotlib、numpy是python三大库,pandas就像是把matplotlib和numpy结合在一起,让数据以“表格”的情势体现出来,是一个强盛的数据处置惩罚和分析库,它建立在NumPy库之上,提供了高效地操纵大型数据集所需的数据结构和操纵。
  2.pandas库的引入

   import pandas as pd
  3.pandas 的数据结构

   pandas主要有 Series、DataFrame、MutiIndex/panel三大结构
  
  Series:一位数据结构
  DataFrame:二维表格型数据结构
  MultiIndex/panel:三维数据结构
    Ⅰ.Series结构

          1.Series结构的建立

                  a.正常方式建立:table=pd.Series(data,index=)
                  b.不写index,默认为0,1,2,3...   table=pd.Series(data)
                  c.字典方式建立:table=pd.Series({"key1":value,   "key2":value   ...})
          2.Series属性检察

                  table.index   //检察索引名,没有括号
                  table.value    //检察索引值,没有括号
          3.Series结构的样子:

                          

  
  
  Ⅱ.DataFrame结构

  1.建立

  table=pd.DataFrame(data,index=,columns=)
  table=pd.DataFrame({"key1":[v11,v21,v31...]  ,"key2":[v12,v22,v32] ....   })
  

  2.属性

  table.shape
  table.index
  table.columns
  table.values
  table.head(k)     //输出前k行
  table.tail(k)         //输出后k行
  
  3.行列索引的修改

  a.更改原来的索引名称

  table.index=[]
  table.columns=[]
  //要么全部修改,要么不修改,不能只修改某一行、列的索引名
  

  
  b.重设索引(只能重设为0,1,2,3....)

          删除原来的索引,重设0,1,2...索引

          table1=table.reset_index(drop=True)
  

  
          不删除原来的索引,将原来的索引归成数据(不传参数时默认)

          table1=table.reset_index(drop=False)
  //需要有新表接收,不是在原数据上操纵
  //只有reset_index,没有reset_columns
  

  
  c.从原数据中取出一列作为索引

          删除原数据中作为新索引的数据

          table1=table.set_index(["name",''age''],drop=True)
          不删除原数据中作为新索引的数据

          table1=table.set_index("name",drop=False)
  //需要有新表接收,不是在原数据上操纵
  //只有set_index,没有set_columns
  //可以有多个索引
  

  
  
  Ⅲ.MultiIndex结构

  如果table是多索引的表,我们检察他的索引时:
  table.index

  结果:MultiIndex([(索引1.1, 索引2.1),
            (索引1.2, 索引2.2),
            (索引1.3, 索引2.3)],
           names=['索引1', '索引2'])
  table.index.levels 

  结果:【[索引1,索引1,索引1...],[索引2,索引2,索引2...]】
  这里的索引1,2就不是逐一对应的,如果索引1中有重复的,那就只表现一个,一般是按照从小到大排
  
  
  代码

  1. # pandas笔记
  2. import numpy as np
  3. import pandas as pd
  4. from pandas import DataFrame
  5. # 一、pandas之series数据结构
  6. # 1.series结构的建立
  7. data1 = np.random.randint(60, 100, 4)
  8. index_1 = pd.Series(data1, index=["学生1", "学生2", "学生3", "学生4"])  # Series一定要大写!
  9. # 字典法建立:
  10. index_2 = pd.Series({"学生A": 90, "学生B": 80})
  11. print(index_1)
  12. print(index_2)
  13. """结果:
  14. 学生1    67
  15. 学生2    73
  16. 学生3    74
  17. 学生4    97
  18. dtype: int32
  19. -----------------
  20. 学生A    90
  21. 学生B    80
  22. dtype: int64
  23. """
  24. # 2.Series的属性
  25. print(index_1.index)  # Index(['学生1', '学生2', '学生3', '学生4'], dtype='object')
  26. print(index_1.values)  # [81 88 62 75]
  27. print(index_1.head(2))
  28. """
  29.     学生1    81
  30.     学生2    88
  31.     dtype: int32"""
  32. print(index_1.tail(2))
  33. """
  34.     学生3    62
  35.     学生4    75
  36.     dtype: int32"""
  37. # 二.DataFrame数据结构
  38. # 2.1建立
  39. table_1 = DataFrame(np.random.randint(10, 25, (3, 4)), index=["上海", "广州", "深圳"],
  40.                     columns=["11月1日", "11月2日", "11月3日", "11月4日"])
  41. table_2 = DataFrame({"上海": [21, 22, 22, 27], "广州": [23, 22, 25, 27], "深圳": [21, 24, 27, 24]},
  42.                     index=["11月1日", "11月2日", "11月3日", "11月4日"])  # 字典的key组成列索引
  43. print(table_1)
  44. print(table_2)
  45. print(table_2.index)
  46. print(table_2.columns)
  47. # 2.2属性
  48. print(table_1.shape)
  49. print(table_1.index)
  50. print(table_1.columns)
  51. print(table_2.T)
  52. print(table_1.head(1))
  53. print(table_1.tail(2))
  54. # 2.3重设索引
  55. table = pd.DataFrame(np.random.randint(60, 100, (3, 4)), index=["张三", "李四", "王五"],
  56.                      columns=["语", "数", "英", "政"])
  57. print(table)
  58. # 2.3.1 table.index
  59. table.index = ["同学" + str(i) for i in range(3)]
  60. print(table)
  61. # 2.3.2 table.reset_index()
  62. table = table.reset_index(drop=True)
  63. print(table)
  64. # 2.3.3 table.set_index("",)
  65. table = table.set_index("语")
  66. print(table)
  67. table0 = table.set_index(["政","英"], drop=False)
  68. print(table0)
  69. print(table0.index)
  70. print(table0.index.levels)
复制代码
我遇到的题目:

   1.数据结构大小写题目

  Series、DateFrame、MultiIndex,这三个都是大写首字母
  2.DataFrame的引进

  from pd import DataFrame
  3.索引的重设中,能不能重设列索引

  只有table.columns=【】是重设列索引,reset、set_...都是对index改变
  4.DataFrame索引题目

  reset_index和 set_index都不是在原数据上改变,以是需要有接收的table变量
  reset_index只能重设成0,1,2,3...
  reset_index和set_index的drop含义差别
  index、set_index、reset_index后的结果
  5.当索引中有重复时

  只表现一个,不重复表现,如果是表,重复的部分空着,如果是看属性结果,那么只输出一个
  6.用字典法建立DataFrame结构时

  key值是列索引,行索引是0,1,2,3...

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

农妇山泉一亩田

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表