人工智能5.2 -- 机器学习数据科学包(numpy、pandas、matpotlib)篇(二)pandas

python,大数据,机器学习,深度学习,计算机视觉

五、机器学习数据科学包(numpy、pandas、matpotlib)篇(二)pandas

前言

Pandas可以处理大量的数据(如几G,几十G大小的),比Excel(VB)性能要强大,
学习Pandas要时时想着联系数据库知识。

ipython

[说明]:前面装过Anaconda环境都自带了,直接用即可。

1. ipython优点和基本使用

ipython比python要更好些,ipython的很多命令类似于Linux,ipython优点如下:
(1)ipython显示界面友好,输出结果更直观!
ipython:
在这里插入图片描述python:
在这里插入图片描述(2)ipython编辑代码时有提示补全功能,如输入一部分后按“Tab”键,类似Linux。
(3)ipython用“?”命令就可以查看文档功能,比python的“help”命令更方便。如:
ipython用“?”命令:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述而python用“help”命令:在这里插入图片描述(4)ipython “pwd"命令查看当前目录,“ls”查看当前目录下的文件,“cd"切换目录(左右斜线”/“和”“都支持),这都是python不具备的命令,如下:
ipython:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
python:
在这里插入图片描述
(5)可以用”!echo"命令:写代码输出成一新文件。
在这里插入图片描述注意:
echo后面没有引号”"
正确写法:!echo print('hello pandas') > hello.py(代码存的是 print('hello pandas')
错误写法:!echo "print('hello pandas')" > hello.py"(代码存的是 "print('hello pandas')"
这是新版规定,简化了不用写引号直接echo xxxx代码即可!

下面用生成100*100矩阵,可以用%timeit看执行时间。
在这里插入图片描述

2. ipython notebook

前面博文numpy说过win+R输入cmd后,输入jupyter notebook可以启动jupyter。同样输入ipython notebook也可以启动jupyter。
进入后我们可以新建文件夹和文件,并重命名为ipythondemo
在这里插入图片描述在这里插入图片描述
(这里后缀默认是.ipynb 即ipython notebook的意思)
常用的功能:
在这里插入图片描述
如图代码运行,代码编辑插入新一栏。
当然鼠标很麻烦,有快捷键,点图中Help下的"Keyboard Shortcuts"查看。
常用快捷键:
ctrl + Enter 代码运行
Shift +Enter代码编辑插入新一栏

代码如下:
(1)可看当前目录等信息
在这里插入图片描述(2)将圆周从0~2pi用linspace分成100份存入矩阵,作为自变量x
import matplotlib.pyplot as plt生成图像库。这个像matlab
【巧记】mat plot lib = matlib(看成matlab) + plot     pyplot = python plot 并将plot简称plt
%matplotlib inline 意思是图片显示在网页上。输出显示图像。
在这里插入图片描述(3)引用np带的sin函数,数学y = sin(x),代码y = np.sin(x)
在这里插入图片描述(4)用matplotlib.pyplot带的plot函数画出图像。
在这里插入图片描述附:
PyCharm运行一下,结尾需要加上一句代码plt.show()才能显示出来图像。

2_pandas.py完整代码如下:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2*np.pi, num = 100)
print(x)
y = np.sin(x)
print(y)
plt.plot(x, y)
plt.show()# 重要!!!

运行结果:
在这里插入图片描述若将x = np.linspace(0, 2*np.pi, num = 100)改为x = np.linspace(0, np.pi, num = 100),则结果:
在这里插入图片描述
若将改成x = np.linspace(0, 2*np.pi, num = 100)改成x = np.linspace(0, 2*np.pi, num = 10),则由于点很少,将点串联起来后看起来不再圆滑了,结果:
在这里插入图片描述再看num=2呢?如下:
在这里插入图片描述接着,num = 1时,因为只有一个点,所以串联不起来,结果什么都不显示,如下:
在这里插入图片描述综上:点越多越圆滑,原理同图像滤波、信号降噪。

pandas快速入门(一)

推荐个高质量的文档《10分钟了解pandas》,这个英文的,下载地址:
https://pandas.pydata.org/pandas-docs/stable/getting_started/10min.html
下面内容参考的上面的官方文档。

import numpy as np
import pandas as pd
from time import time

#pandas带的数据结构型函数Series创建一行或一列的列表。
s = pd.Series([1, 3, 5, np.NaN, 8, 4])#Series大写
print(s, '\n')

#date_range()生成时间序列
dates = pd.date_range('20191012','20191030', periods = 6)#如同range
print(dates,'\n')
dates = pd.date_range('20191012', periods = 6)
print(dates,'\n')

#DataFrame将数据转化为Frame表格格式。 DataFrame(矩阵,index=序列1, columns=序列2),index表行索引,columns表列标题
#例1
data = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))
print(data, '\n')
print(data.shape, '\n')
print(data.values, '\n')

#例2
d = {'A':1, 'B':pd.Timestamp('20180101'), 'C':range(4), 'D':np.arange(4)}#字典
print(d, '\n')
df = pd.DataFrame(d)
print(df, '\n')
print(df.dtypes, '\n')
print(df.A, '\n')
print(df.B, '\n')
print(type(df.B), '\n')

print(data, '\n')
#头5行数据,默认5。
print(data.head(), '\n')#head()要有括号,是函数
#头2行数据
print(data.head(2), '\n')
#尾5行数据,默认5。
print(data.tail(), '\n')#tail()要有括号,是函数
#尾3行数据
print(data.tail(3), '\n')
#行索引,行标题
print(data.index, '\n')#index是关键字,不是函数,没有括号
#列标题
print(data.columns, '\n')#columns是关键字,不是函数,没有括号
#值!即去除索引/标题后的值
print(data.values, '\n')
#详细描述describe()
print(data.describe(), '\n')#describe()要有括号,是函数
print(data.T, '\n')
print(data.T.shape, '\n')
print(data.shape, '\n')
#下面重点,见numpy博文后面对axis=1或0的总结
#按索引排序sort_index(axis=1或0, ascending=True(默认)或False)。
print(data.sort_index(axis=1, ascending=False), '\n')#axis=1表数据水平方向变动,ascending=False表逆序从大到小
print(data.sort_index(axis=1), '\n')#ascending默认True表顺序从小到大
print(data.sort_index(axis=0, ascending=False), '\n')
print(data.sort_index(axis=0), '\n')#ascending默认True
#按值排序sort_values
print(data.sort_values(by='A'), '\n')

#下面选择数据,如同array
#写法1(数组法)
print(data['A'], '\n')
#写法2(对象属性法)
print(data.A, '\n')
#写法1(下标法)
print(data[2:4], '\n')#下标2~3(不含4)
#写法2(直接法)
print(data['20191014':'20191015'], '\n')
#写法3(loc高效法),运行最快!loc即location
print(data.loc['20191014':'20191015'], '\n')#data.loc只认值,因为不能像data那样即可输入下标又可直接输入值,所以功能单一效率高!
# iloc = index location索引下标位置
print(data.iloc[2:4], '\n')
print(data.loc[:, ['B', 'C']], '\n')
print(data.loc['20191012':'20191015', ['B', 'C']], '\n')
print(data.loc['20191012','B'], '\n')
print(data.at[pd.Timestamp('20191012'), 'B'], '\n')
print(data.iloc[1], '\n')
print(data.iloc[1:3], '\n')
print(data.iloc[1:3, 2:4], '\n')
print(data.iloc[:, 1:3], '\n')
print(data.iloc[1,1], '\n')
#iat比iloc更高效
print(data.iat[1,1], '\n')
#ipython可以用魔术方法:print(%timeit df.iloc[1,1]) 来测试运行时间
#ipython可以用魔术方法:print(%timeit df.iat[1, 1]) 来测试运行时间

#显示data.A列里所有大于0的,array就如同数据库
print(data[data.A > 0], '\n')
#data表里所有大于0的
print(data[data > 0], '\n')


data2 = data.copy()
print(data2, '\n')

#扩列,新加一列
tag = ['a']*2 + ['b']*2 + ['c']*2
data2['TAG'] = tag
print(data2, '\n')
print(data2[data2.TAG.isin(['a', 'c'])], '\n')

#修改表格数据
print(data, '\n')
#改某个值
data.iat[0, 0] = 100
print(data, '\n')
#改某一列
data.B = 200
print(data, '\n')
data.A = range(6)#数要匹配。若range(5)则错
print(data, '\n')
data.iloc[:, 2:5] = 1000
print(data)

运行结果:

C:\Python\Anaconda3\python.exe C:/AI/AnacondaProject/2_pandas.py
0    1.0
1    3.0
2    5.0
3    NaN
4    8.0
5    4.0
dtype: float64 

DatetimeIndex(['2019-10-12 00:00:00', '2019-10-15 14:24:00',
               '2019-10-19 04:48:00', '2019-10-22 19:12:00',
               '2019-10-26 09:36:00', '2019-10-30 00:00:00'],
              dtype='datetime64[ns]', freq=None) 

DatetimeIndex(['2019-10-12', '2019-10-13', '2019-10-14', '2019-10-15',
               '2019-10-16', '2019-10-17'],
              dtype='datetime64[ns]', freq='D') 

                   A         B         C         D
2019-10-12 -0.777429  1.242128 -1.172572  1.552902
2019-10-13 -0.832428  1.051917 -0.612225  1.577088
2019-10-14 -0.962277  0.157678 -1.340870  0.011871
2019-10-15 -1.235357  1.433113 -0.976180  0.190187
2019-10-16  0.392660 -0.312966 -0.202217  0.343924
2019-10-17  0.252405  0.346768 -0.346082 -1.298857 

(6, 4) 

[[-0.77742935  1.24212761 -1.17257211  1.55290247]
 [-0.83242779  1.051917   -0.61222523  1.57708791]
 [-0.96227744  0.15767828 -1.34087005  0.01187076]
 [-1.2353565   1.4331129  -0.97617989  0.19018693]
 [ 0.3926603  -0.31296585 -0.2022165   0.34392391]
 [ 0.25240514  0.34676844 -0.34608194 -1.298857  ]] 

{'A': 1, 'B': Timestamp('2018-01-01 00:00:00'), 'C': range(0, 4), 'D': array([0, 1, 2, 3])} 

   A          B  C  D
0  1 2018-01-01  0  0
1  1 2018-01-01  1  1
2  1 2018-01-01  2  2
3  1 2018-01-01  3  3 

A             int64
B    datetime64[ns]
C             int64
D             int32
dtype: object 

0    1
1    1
2    1
3    1
Name: A, dtype: int64 

0   2018-01-01
1   2018-01-01
2   2018-01-01
3   2018-01-01
Name: B, dtype: datetime64[ns] 

<class 'pandas.core.series.Series'> 

                   A         B         C         D
2019-10-12 -0.777429  1.242128 -1.172572  1.552902
2019-10-13 -0.832428  1.051917 -0.612225  1.577088
2019-10-14 -0.962277  0.157678 -1.340870  0.011871
2019-10-15 -1.235357  1.433113 -0.976180  0.190187
2019-10-16  0.392660 -0.312966 -0.202217  0.343924
2019-10-17  0.252405  0.346768 -0.346082 -1.298857 

                   A         B         C         D
2019-10-12 -0.777429  1.242128 -1.172572  1.552902
2019-10-13 -0.832428  1.051917 -0.612225  1.577088
2019-10-14 -0.962277  0.157678 -1.340870  0.011871
2019-10-15 -1.235357  1.433113 -0.976180  0.190187
2019-10-16  0.392660 -0.312966 -0.202217  0.343924 

                   A         B         C         D
2019-10-12 -0.777429  1.242128 -1.172572  1.552902
2019-10-13 -0.832428  1.051917 -0.612225  1.577088 

                   A         B         C         D
2019-10-13 -0.832428  1.051917 -0.612225  1.577088
2019-10-14 -0.962277  0.157678 -1.340870  0.011871
2019-10-15 -1.235357  1.433113 -0.976180  0.190187
2019-10-16  0.392660 -0.312966 -0.202217  0.343924
2019-10-17  0.252405  0.346768 -0.346082 -1.298857 

                   A         B         C         D
2019-10-15 -1.235357  1.433113 -0.976180  0.190187
2019-10-16  0.392660 -0.312966 -0.202217  0.343924
2019-10-17  0.252405  0.346768 -0.346082 -1.298857 

DatetimeIndex(['2019-10-12', '2019-10-13', '2019-10-14', '2019-10-15',
               '2019-10-16', '2019-10-17'],
              dtype='datetime64[ns]', freq='D') 

Index(['A', 'B', 'C', 'D'], dtype='object') 

[[-0.77742935  1.24212761 -1.17257211  1.55290247]
 [-0.83242779  1.051917   -0.61222523  1.57708791]
 [-0.96227744  0.15767828 -1.34087005  0.01187076]
 [-1.2353565   1.4331129  -0.97617989  0.19018693]
 [ 0.3926603  -0.31296585 -0.2022165   0.34392391]
 [ 0.25240514  0.34676844 -0.34608194 -1.298857  ]] 

              A         B         C         D
count  6.000000  6.000000  6.000000  6.000000
mean  -0.527071  0.653106 -0.775024  0.396186
std    0.678304  0.690940  0.459846  1.076899
min   -1.235357 -0.312966 -1.340870 -1.298857
25%   -0.929815  0.204951 -1.123474  0.056450
50%   -0.804929  0.699343 -0.794203  0.267055
75%   -0.005053  1.194575 -0.412618  1.250658
max    0.392660  1.433113 -0.202217  1.577088 

   2019-10-12  2019-10-13  2019-10-14  2019-10-15  2019-10-16  2019-10-17
A   -0.777429   -0.832428   -0.962277   -1.235357    0.392660    0.252405
B    1.242128    1.051917    0.157678    1.433113   -0.312966    0.346768
C   -1.172572   -0.612225   -1.340870   -0.976180   -0.202217   -0.346082
D    1.552902    1.577088    0.011871    0.190187    0.343924   -1.298857 

(4, 6) 

(6, 4) 

                   D         C         B         A
2019-10-12  1.552902 -1.172572  1.242128 -0.777429
2019-10-13  1.577088 -0.612225  1.051917 -0.832428
2019-10-14  0.011871 -1.340870  0.157678 -0.962277
2019-10-15  0.190187 -0.976180  1.433113 -1.235357
2019-10-16  0.343924 -0.202217 -0.312966  0.392660
2019-10-17 -1.298857 -0.346082  0.346768  0.252405 

                   A         B         C         D
2019-10-12 -0.777429  1.242128 -1.172572  1.552902
2019-10-13 -0.832428  1.051917 -0.612225  1.577088
2019-10-14 -0.962277  0.157678 -1.340870  0.011871
2019-10-15 -1.235357  1.433113 -0.976180  0.190187
2019-10-16  0.392660 -0.312966 -0.202217  0.343924
2019-10-17  0.252405  0.346768 -0.346082 -1.298857 

                   A         B         C         D
2019-10-17  0.252405  0.346768 -0.346082 -1.298857
2019-10-16  0.392660 -0.312966 -0.202217  0.343924
2019-10-15 -1.235357  1.433113 -0.976180  0.190187
2019-10-14 -0.962277  0.157678 -1.340870  0.011871
2019-10-13 -0.832428  1.051917 -0.612225  1.577088
2019-10-12 -0.777429  1.242128 -1.172572  1.552902 

                   A         B         C         D
2019-10-12 -0.777429  1.242128 -1.172572  1.552902
2019-10-13 -0.832428  1.051917 -0.612225  1.577088
2019-10-14 -0.962277  0.157678 -1.340870  0.011871
2019-10-15 -1.235357  1.433113 -0.976180  0.190187
2019-10-16  0.392660 -0.312966 -0.202217  0.343924
2019-10-17  0.252405  0.346768 -0.346082 -1.298857 

                   A         B         C         D
2019-10-15 -1.235357  1.433113 -0.976180  0.190187
2019-10-14 -0.962277  0.157678 -1.340870  0.011871
2019-10-13 -0.832428  1.051917 -0.612225  1.577088
2019-10-12 -0.777429  1.242128 -1.172572  1.552902
2019-10-17  0.252405  0.346768 -0.346082 -1.298857
2019-10-16  0.392660 -0.312966 -0.202217  0.343924 

2019-10-12   -0.777429
2019-10-13   -0.832428
2019-10-14   -0.962277
2019-10-15   -1.235357
2019-10-16    0.392660
2019-10-17    0.252405
Freq: D, Name: A, dtype: float64 

2019-10-12   -0.777429
2019-10-13   -0.832428
2019-10-14   -0.962277
2019-10-15   -1.235357
2019-10-16    0.392660
2019-10-17    0.252405
Freq: D, Name: A, dtype: float64 

                   A         B        C         D
2019-10-14 -0.962277  0.157678 -1.34087  0.011871
2019-10-15 -1.235357  1.433113 -0.97618  0.190187 

                   A         B        C         D
2019-10-14 -0.962277  0.157678 -1.34087  0.011871
2019-10-15 -1.235357  1.433113 -0.97618  0.190187 

                   A         B        C         D
2019-10-14 -0.962277  0.157678 -1.34087  0.011871
2019-10-15 -1.235357  1.433113 -0.97618  0.190187 

                   A         B        C         D
2019-10-14 -0.962277  0.157678 -1.34087  0.011871
2019-10-15 -1.235357  1.433113 -0.97618  0.190187 

                   B         C
2019-10-12  1.242128 -1.172572
2019-10-13  1.051917 -0.612225
2019-10-14  0.157678 -1.340870
2019-10-15  1.433113 -0.976180
2019-10-16 -0.312966 -0.202217
2019-10-17  0.346768 -0.346082 

                   B         C
2019-10-12  1.242128 -1.172572
2019-10-13  1.051917 -0.612225
2019-10-14  0.157678 -1.340870
2019-10-15  1.433113 -0.976180 

1.242127607313205 

1.242127607313205 

A   -0.832428
B    1.051917
C   -0.612225
D    1.577088
Name: 2019-10-13 00:00:00, dtype: float64 

                   A         B         C         D
2019-10-13 -0.832428  1.051917 -0.612225  1.577088
2019-10-14 -0.962277  0.157678 -1.340870  0.011871 

                   C         D
2019-10-13 -0.612225  1.577088
2019-10-14 -1.340870  0.011871 

                   B         C
2019-10-12  1.242128 -1.172572
2019-10-13  1.051917 -0.612225
2019-10-14  0.157678 -1.340870
2019-10-15  1.433113 -0.976180
2019-10-16 -0.312966 -0.202217
2019-10-17  0.346768 -0.346082 

1.051916995617705 

1.051916995617705 

                   A         B         C         D
2019-10-16  0.392660 -0.312966 -0.202217  0.343924
2019-10-17  0.252405  0.346768 -0.346082 -1.298857 

                   A         B   C         D
2019-10-12       NaN  1.242128 NaN  1.552902
2019-10-13       NaN  1.051917 NaN  1.577088
2019-10-14       NaN  0.157678 NaN  0.011871
2019-10-15       NaN  1.433113 NaN  0.190187
2019-10-16  0.392660       NaN NaN  0.343924
2019-10-17  0.252405  0.346768 NaN       NaN 

                   A         B         C         D
2019-10-12 -0.777429  1.242128 -1.172572  1.552902
2019-10-13 -0.832428  1.051917 -0.612225  1.577088
2019-10-14 -0.962277  0.157678 -1.340870  0.011871
2019-10-15 -1.235357  1.433113 -0.976180  0.190187
2019-10-16  0.392660 -0.312966 -0.202217  0.343924
2019-10-17  0.252405  0.346768 -0.346082 -1.298857 

                   A         B         C         D TAG
2019-10-12 -0.777429  1.242128 -1.172572  1.552902   a
2019-10-13 -0.832428  1.051917 -0.612225  1.577088   a
2019-10-14 -0.962277  0.157678 -1.340870  0.011871   b
2019-10-15 -1.235357  1.433113 -0.976180  0.190187   b
2019-10-16  0.392660 -0.312966 -0.202217  0.343924   c
2019-10-17  0.252405  0.346768 -0.346082 -1.298857   c 

                   A         B         C         D TAG
2019-10-12 -0.777429  1.242128 -1.172572  1.552902   a
2019-10-13 -0.832428  1.051917 -0.612225  1.577088   a
2019-10-16  0.392660 -0.312966 -0.202217  0.343924   c
2019-10-17  0.252405  0.346768 -0.346082 -1.298857   c 

                   A         B         C         D
2019-10-12 -0.777429  1.242128 -1.172572  1.552902
2019-10-13 -0.832428  1.051917 -0.612225  1.577088
2019-10-14 -0.962277  0.157678 -1.340870  0.011871
2019-10-15 -1.235357  1.433113 -0.976180  0.190187
2019-10-16  0.392660 -0.312966 -0.202217  0.343924
2019-10-17  0.252405  0.346768 -0.346082 -1.298857 

                     A         B         C         D
2019-10-12  100.000000  1.242128 -1.172572  1.552902
2019-10-13   -0.832428  1.051917 -0.612225  1.577088
2019-10-14   -0.962277  0.157678 -1.340870  0.011871
2019-10-15   -1.235357  1.433113 -0.976180  0.190187
2019-10-16    0.392660 -0.312966 -0.202217  0.343924
2019-10-17    0.252405  0.346768 -0.346082 -1.298857 

                     A    B         C         D
2019-10-12  100.000000  200 -1.172572  1.552902
2019-10-13   -0.832428  200 -0.612225  1.577088
2019-10-14   -0.962277  200 -1.340870  0.011871
2019-10-15   -1.235357  200 -0.976180  0.190187
2019-10-16    0.392660  200 -0.202217  0.343924
2019-10-17    0.252405  200 -0.346082 -1.298857 

            A    B         C         D
2019-10-12  0  200 -1.172572  1.552902
2019-10-13  1  200 -0.612225  1.577088
2019-10-14  2  200 -1.340870  0.011871
2019-10-15  3  200 -0.976180  0.190187
2019-10-16  4  200 -0.202217  0.343924
2019-10-17  5  200 -0.346082 -1.298857 

            A    B     C     D
2019-10-12  0  200  1000  1000
2019-10-13  1  200  1000  1000
2019-10-14  2  200  1000  1000
2019-10-15  3  200  1000  1000
2019-10-16  4  200  1000  1000
2019-10-17  5  200  1000  1000

Process finished with exit code 0

pandas快速入门(二)

试着用ipython notebook来编写。好处:针对输出结果图形比较多的,可以方便地快速显示。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

pandas快速入门(三)

数据整形:即把行列互换在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

实战:MovieLens 电影评分数据分析

准备文件

在 https://grouplens.org/datasets/movielens/ 下载如下文件(6000个用户对4000个电影的评分数据):
在这里插入图片描述

代码

打开jupyter notebook,新建文件movie_lens_1m.ipynb,并将上面上面下载好的文件解压后放到同级目录。
大概看一下这几个解压文件,如图,通过README文件我们知道user.dat文件里的信息是UerID、性别Gender、年龄Age、职业Occupation(数字编号表示)、邮政号Zip-code。其中年龄信息:1表示“18岁以下”,18表“18-24”…
在这里插入图片描述了解后,可以写代码了,如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

pandas 核心数据结构(Series,DataFrame,Xarray)

  • Series:一维数据结构
  • DataFrame:二维表
  • Xarray:三维
(1)Series

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

(2)DataFrame(重点)

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

(3)Xarray

这个用的比较少,因为这三维实际都能转化为二维DataFrame,上面的DataFrame是重点。
以前这部分功能是Panel,但是在新版本中,被xarray包代替!

(1)旧版已不支持,报错:
在这里插入图片描述(2)用之前先下载xarray包,Anaconda没有这包。
打开win命令窗口(win+r->cmd),输入pip install xarray,大概600KB左右
在这里插入图片描述如图,已经安装完成
在这里插入图片描述(3)实例代码:
在这里插入图片描述在这里插入图片描述

pandas 基础运算

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述【注意】
sort_values()用法在新版本已变。
详见官方文档:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sort_values.html
在这里插入图片描述
例:

df = pd.DataFrame(np.random.randn(4, 3), index=['one', 'two', 'three', 'four'], columns=list('ABC'))

# 按 by='two' 排序
df.sort_values(by='two', axis=1, ascending=False)#重点,按行一定要有axis=1

# 按 by=['two', 'three'] 排序, 即先按two 再按three排
df.sort_values(by=['two', 'three'], axis=1, ascending=False)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值