添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
深情的长颈鹿  ·  CVPR 2023 | 最全 AIGC ...·  6 月前    · 
憨厚的黄豆  ·  python - ...·  1 年前    · 
千杯不醉的丝瓜  ·  python numpy array to ...·  1 年前    · 

1、 隐式构造

1)最常见的方法是给DataFrame构造函数的index参数传递两个或更多的数组,Series也可以创建多层索引。

s = Series(np.random.randint(0,150,size=10),index=list('qwertyuiop'))
q 131 r 144 o 102 dtype: int32
s = Series(np.random.randint(0,150,size=6),index=[['a','a','b','b','c','c'],['期中','期末','期中','期末','期中','期末']])
a 期中 59 期末 43 b 期中 28 期末 99 c 期中 92 期末 58 dtype: int32
df = DataFrame(s,columns=['python'])

这里写图片描述
2)DataFrame建丽2级列索引

df1 = DataFrame(np.random.randint(0,150,size=(4,6)),
               index = list('东南西北'),
               columns=[['python','python','math','math','En','En'],['期中','期末','期中','期末','期中','期末']])

2、 显示构造pd.MultiIndex

1)使用数组构造

df2 = DataFrame(np.random.randint(0,150,size=(4,6)),
               index = list('东南西北'),
               columns=[['python','python','math','math','En','En'],['期中','期末','期中','期末','期中','期末']])

这里写图片描述
2)使用tuple构造

df3 = DataFrame(np.random.randint(0,150,size=(4,6)),
               index = list('东南西北'),
               columns =pd.MultiIndex.from_tuples([('python','期中'),('python','期末'),
                                                  ('math','期中'),('math','期末'),
                                                  ('En','期中'),('En','期末')]))

这里写图片描述
3)使用product构造(推荐)

df4 = DataFrame(np.random.randint(0,150,size=(8,12)),
               columns = pd.MultiIndex.from_product([['模拟考','正式考'],
                                                   ['数学','语文','英语','物理','化学','生物']]),
               index = pd.MultiIndex.from_product([['期中','期末'],
                                                   ['雷军','李斌'],
                                                  ['测试一','测试二']]))

二. 多层索引对象的索引与切片操作

1、Series的操作

注意 :对于Series来说,直接中括号[]与使用.loc()完全一样,推荐使用中括号索引和切片。

s = Series(np.random.randint(0,150,size=6),index=[['a','a','b','b','c','c'],['期中','期末','期中','期末','期中','期末']])
a 期中 59 期末 43 b 期中 28 期末 99 c 期中 92 期末 58 dtype: int32
s['a','期中']
s[['a','b']]   #取多层的外层索引时,内层索引不可用
a 期中 59 期末 43 b 期中 28 期末 99 dtype: int32
s['a'][['期中','期末']]['期中']
s.loc['a']
期中    59
期末    43
dtype: int32
s.iloc[:5]   #iloc计算的事最内层索引
a  期中    59
   期末    43
b  期中    28
   期末    99
c  期中    92
dtype: int32

2、DataFrame操作

(1) 可以直接使用列名称来进行列索引

(2) 使用行索引需要用ix(),loc()等函数

推荐使用loc()函数
注意:在对行索引的时候,若一级行索引还有多个,对二级行索引会遇到问题!也就是说,无法直接对二级索引进行索引,必须让二级索引变成一级索引后才能对其进行索引!

df4 = DataFrame(np.random.randint(0,150,size=(8,12)),
               columns = pd.MultiIndex.from_product([['模拟考','正式考'],
                                                   ['数学','语文','英语','物理','化学','生物']]),
               index = pd.MultiIndex.from_product([['期中','期末'],
                                                   ['雷军','李斌'],
                                                  ['测试一','测试二']]))
df4['模拟考'][['语文','数学']]
df4.loc['期中','雷军','测试一']['模拟考','数学']
df4.loc['期中','雷军','测试一']
模拟考  数学     61
     语文     90
     英语     97
     化学    118
     生物    127
正式考  数学    143
     语文     35
     英语     79
     化学     90
     生物     54
Name: (期中, 雷军, 测试一), dtype: int32
df4.iloc[0]   #iloc是只取最内层的索引的
模拟考  数学     61
     语文     90
     英语     97
     化学    118
     生物    127
正式考  数学    143
     语文     35
     英语     79
     化学     90
     生物     54
Name: (期中, 雷军, 测试一), dtype: int32
df4['正式考']

这里写图片描述
注意:列索引从列开始取,必须一层层取,取完列索引,才可以取行索引,先取行索引同理。

pandas层次化索引# 导入模块,将其别名import numpy as npimport pandas as pdfrom pandas import Series,DataFrameimport matplotlib.pyplot as plt一. 创建多层行索引1、 隐式构造1)最常见的方法是给DataFrame构造函数的index参数传递两个或更多的数组,... index = [('California', 2000), ('California', 2010), ('New York', 2000), ('New York', 2010), ('Texas', 2000), ('Texas', 2010)] populations = [33871648, 37253956, 1897 df = pd.DataFrame({'性别' : ['男', '女', '男', '女', '男', '女', '男', '男'], '成绩' : ['优秀', '优秀', '及格', '差', '及格', '及格', '优秀', '差'], '年龄' : [15,14,15,12,13,14,15,16]}) GroupBy=df.groupby(性别) GroupBy.iter() GroupBy对象是一个迭代对象,每次迭代结果是一个元组,元组的第一个元素是该组的名称(就是
3.5 统计计算与描述 Pandas提供了很多跟数学和统计相关的方法,其中大部分都属于汇总统计,用来从Series中获取某个值(如max或min),或者从DataFrame的列中提取一列数据(如sum)。 3.5.1 常用的统计计算 常用描述性统计方法及说明
目录1.单级索引1. 1 loc方法、iloc方法、[ ]操作符1.1.1 loc方法(注意:所有在loc中使用的切片全部包含右端点!)1.1.2 iloc方法(注意与loc不同,切片右端点不包含)1.2 布尔索引1.2.1 布尔符号:’&’,’|’,’~’:分别代表和and,或or,取反not1.2.2 isin方法1.2.3 快速标量索引1.2.4 区间索引1.2.4.1利用interval_range方法1.2.4.2 利用cut将数值列转为区间为元素的分类变量1.2.5 区间索引的选取2 多级索引2.1 创建多级索引2.1.1 通过from_tuple或from_arrays2.1.
Pandas基础 Pandas是基于Numpy的库,但功能更加强大,Numpy专注于数值型数据的操作,而Pandas对数值型,字符串型等多种格式的表格数据都有很好的支持。 1.数据结构(Series,DataFrame,Panel) 2.索引操作 3.数据运算 4.层次化索引 5.可视化(暂时忽略) 6.示例1 7.外部数据的读取与存储(csv,txt,json,excel,数据库,web数据) 8.示例2 9.数据清洗与整理 10.示例3 11.数据分组与聚合 12.示例4 13.时间序列 # Pandas 采用了很多Numpy的代码风格,但Pandas是用来处理表
stack() unstack() 【小技巧】:使用stack()的时候,level等于哪一个,哪一个就消失,出现在里;使用unstack()的时候,level等于哪一个,哪一个就消失,出现在列里。 (1). 创建多层索引 #三层索引 df = DataFrame(data = np.random.randint(0,150,size = (1,8)),
pandas是Python数据分析常用的库,其中多层索引在处理复杂数据时非常有用。在某些情况下,我们需要对多层索引中的索引修改。此时,我们可以使用rename()方法。 rename()方法可以接受一个字典作为参数,字典中的key为原来的索引名称,value为新的索引名称。例如,我们有如下的数据表: A B C first second third foo one A 1 2 3 B 4 5 6 two A 7 8 9 B 10 11 12 bar one A 13 14 15 B 16 17 18 two A 19 20 21 B 22 23 24 现在我们想要将第一层索引中"foo"替换为"FOO",第二层索引中"one"替换为"ONE",第三层索引中"A"替换为"a",代码如下: df.rename(index={"foo": "FOO", "one": "ONE"}, level=[0,1], inplace=True) # 修改第一、第二层索引名称 df.rename(columns={"A": "a"}, level=2, inplace=True) # 修改第三层索引名称 修改后的数据表如下: a B C first second third FOO ONE a 1 2 3 B 4 5 6 two a 7 8 9 B 10 11 12 bar ONE a 13 14 15 B 16 17 18 two a 19 20 21 B 22 23 24 可以看到,索引名称已经被修改。当然,我们也可以只修改一层索引,在调用rename()方法时指定level参数即可。
pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO) 43176 报错:“AssertionError: View function mapping is overwriting an existing endpoint function” xyy_777: 通过修改确实问题解决了,但是又引入了另一个报错,前端真是前途路漫漫啊 解决"python: can't open file 'manage.py': [Errno 2] No such file or directory" xiahuyu: 然后从新创建app python manage.py startapp app_name 我在你这里第一步就失败了,它提示python: can't open file 'C:\\Users\\Administrator\\manage.py': [Errno 2] No such file or directory python:输入两个正整数计算最大公约数和最小公倍数 小冯也是程序猿啊: 第八行和第九行代码是啥意思,%()那个 解决"python: can't open file 'manage.py': [Errno 2] No such file or directory" tinge-L: 非常有用!谢谢大佬! 量化交易:创建签名、从okex平台获取ticker数据和k线数据 AI生成曾小健: 尝试次数过多 410 django xadmin: 'TemplateSyntaxError at /xadmin/ 'crispy_forms_tags' is not a registered tag library' Django报错:DjangoUeditor ModuleNotFoundError: No module named 'widgets' django xadmin: 'TemplateSyntaxError at /xadmin/ 'crispy_forms_tags' is not a registered tag library' Django报错:DjangoUeditor ModuleNotFoundError: No module named 'widgets'