![a96597d40f2b4b0fad62295c1784fbeb.png](https://i-blog.csdnimg.cn/blog_migrate/59a69eb943210d4dc9e38f38a74fc5a9.jpeg)
本节主要是自己学习pandas的练习,与你分享。
导入Pandas与NumPy
import numpy as np
import pandas as pd
生成Series时,pandas默认生成整数索引,我们尝试一下。
s = pd.Series([23,2,5,np.nan,6,9])
s
![7b05cd0e07555eb3d59a45f80a856ed7.png](https://i-blog.csdnimg.cn/blog_migrate/68965dace7e2d2ad07178fb848446d10.png)
使用时间索引与含有标签的Numpy数组生成DataFrame
dates = pd.date_range('20200101',periods=7)
dates
![d7f803806915b9ab22bdf78c950f8fb7.png](https://i-blog.csdnimg.cn/blog_migrate/903349d72096ee9025f05892061b8f24.png)
使用随机数生成一个7*4的数据表。
![5b236bf6b7f51d043a4546008fbcf023.png](https://i-blog.csdnimg.cn/blog_migrate/44e36703d9b64128a23c244cb1412dc0.png)
使用Series字典生成DataFrame
df2 = pd.DataFrame({'A':1.2,
'B':pd.Series(1,index=list(range(4)),dtype='float32'),
'C':pd.Timestamp('20200101'),
'D':np.array([3]*4,dtype='int32'),
'E':pd.Categorical(["test","tarin","test","train"]),
'F':'foo'})
df2
![bcfaac63f67eca8ab69c648bbd15c824.png](https://i-blog.csdnimg.cn/blog_migrate/1f85fdee077bfc3d4487b5f6bfdd0b57.png)
我们查看一下df2中每列的数据类型
df2.dtypes
![661bc8738b6b5c3427af0159d2470962.png](https://i-blog.csdnimg.cn/blog_migrate/e89592a3f089e7feb65f9c24ce022fb6.png)
下面进入数据查看环节,查看数据的前几行和结尾几行的数据:
df.head()#默认是5行
![439ad4f9d271fb65a46fe73bac765773.png](https://i-blog.csdnimg.cn/blog_migrate/6bfcb24ce1528defc293677b68662fdd.png)
df.head(3)#可以输入数字查看相应行数
![9d0640d264b00afed165b866215a4715.png](https://i-blog.csdnimg.cn/blog_migrate/e5007537979b012551bd78d31ba6fe8d.png)
df.tail(3)#查看最后3行
![a14ad183b6c54f79966bb7a46e312b70.png](https://i-blog.csdnimg.cn/blog_migrate/e48504f9be6e0cf8dd00a349316f8393.png)
显示索引与列名
![5ef0740276a703ec64e2dcabf63045e4.png](https://i-blog.csdnimg.cn/blog_migrate/317c8e49c25f0940656469b583029ac9.png)
快速的查看数据统计概要:
![7e081bea0c843770a0cfcc7ad4ef6ae6.png](https://i-blog.csdnimg.cn/blog_migrate/6e7803f959521e47f0ea0eee018484b4.png)
数据转置:
![868ad1f4c1c411177ebbd84e4648f5e2.png](https://i-blog.csdnimg.cn/blog_migrate/103913707447a956e0242b1c3333c3f8.png)
提取数据
获取单列数据,选择单列,产生Series,与df.A 等效
![a7adb887400b6e5db38841b97178f995.png](https://i-blog.csdnimg.cn/blog_migrate/be1bf6c2be0dbd7146901983823e22a8.png)
使用[ ]切片:
![c91cfd082eda863ead8be96553eef110.png](https://i-blog.csdnimg.cn/blog_migrate/4a853ccb3bef6b953ecc714e2b960e16.png)
![15dd84524a36866b4f123ff9720202cb.png](https://i-blog.csdnimg.cn/blog_migrate/b0ed84cf2a68fc7eeaf9e1fa471b2788.png)
按标签选择,用标签提取一行数据
![34b394526e7bf39b1c95f8cd4d603b0c.png](https://i-blog.csdnimg.cn/blog_migrate/09aaf73166ae71189051935a171bcd52.png)
用标签选择多列数据
![feae07baca29421d41e4172ae29f832a.png](https://i-blog.csdnimg.cn/blog_migrate/47d3af9c8df695dab505fbd6c9d58a84.png)
用标签切片,包含行与列结束点:
![1dbb3ee737ef8b7aff69419c3806fee7.png](https://i-blog.csdnimg.cn/blog_migrate/6c813d040071200bd10c42ba3defbb64.png)
提取标量值:
![a682c9e4152450b9ca13c5f2f0a9daea.png](https://i-blog.csdnimg.cn/blog_migrate/1be445a33dce0173f62b7e2f87698d51.png)
使用整数位置选择
![530505a4dc4b4bba49110c6daa8a7f89.png](https://i-blog.csdnimg.cn/blog_migrate/63674cfc017f3adcb8e5d724aadc694c.png)
类似 NumPy / Python,用整数切片:
![39a578a2ba76391ce5c412608d8fa8ab.png](https://i-blog.csdnimg.cn/blog_migrate/408d5e0a089d40dd659da1a541621274.png)
显示整行的切片:
![086475f5577995d4d95ffa7d60b1bbe8.png](https://i-blog.csdnimg.cn/blog_migrate/ad7911129527c26a439fb65a867e998c.png)
显示整列的切片:
![3e30895a78a67096b4068678f1826f4e.png](https://i-blog.csdnimg.cn/blog_migrate/659497ea259e2624564055c0cc001bb7.png)
布尔索引,用单列的值选择数据:
![168789ae96bb4a5c63d07215639018f6.png](https://i-blog.csdnimg.cn/blog_migrate/4752f035971a9028d94ac5be5e272358.png)
提取出DataFrame 里满足条件的值:
![6997e5b2d96c12edcbf9dd70934c6720.png](https://i-blog.csdnimg.cn/blog_migrate/fb45bf49d4589e61eef727f8a43a1a73.png)
使用isin筛选:
![27cc6ba724d31102c86487707a5dc94c.png](https://i-blog.csdnimg.cn/blog_migrate/59c84b0870d3665ae469eb4b29a8d291.png)
用索引自动对齐新增列的数据:
![ec495902499eb727339e82d798bb0b2b.png](https://i-blog.csdnimg.cn/blog_migrate/f82c3718e6633c843e8ab8190292b1ef.jpeg)
按标签赋值:
![d7530ff52b4934c2bf6fbd5f47d53803.png](https://i-blog.csdnimg.cn/blog_migrate/b178e0d644eeef38633453ff9157687d.jpeg)
按位置赋值
![440d6ba1c0860b9bb6a8cfe58ea3d6cc.png](https://i-blog.csdnimg.cn/blog_migrate/92730cdca4666022de662ca4063294d0.png)
按 NumPy 数组赋值:
![8b0342223345735828b4cca13127d3c7.png](https://i-blog.csdnimg.cn/blog_migrate/7a7914ee5e4fb1a02d08b88ed0e766fa.png)
Pandas 主要用 np.nan 表示缺失数据,计算时,默认不包含空值。 重建索引(reindex)可以更改、添加、删除指定轴的索引,并返回数据副本,即不更改原数据。
![90cde8cc3639219d89541049b42b9804.png](https://i-blog.csdnimg.cn/blog_migrate/4e3440dc32c88830d05300f8cf5b2219.png)
删除所有包含空值的行:
![86afdec4ead8401a0e407e20349bde57.png](https://i-blog.csdnimg.cn/blog_migrate/b3bda0b725458684ed5c28fc4c091947.png)
填充缺失值:
![036a1300600d1874fc3b5246597faf95.png](https://i-blog.csdnimg.cn/blog_migrate/bbf609bf706e75bcaed1fc7979e7cde7.png)
计算均值:
![d9c910b691bb23d333414b48328e7050.png](https://i-blog.csdnimg.cn/blog_migrate/ddecd8f59ccf317d934261c4d3bc6336.png)
数值计数:
![e8741fac1e9f1648c52166b73a61769b.png](https://i-blog.csdnimg.cn/blog_migrate/19209fba44ea65da2dbeef1ca3360dcd.png)
包含的字符串的处理功能str:
![c7d0b0efa27bd0c2684b58401ac2ce14.png](https://i-blog.csdnimg.cn/blog_migrate/19e0e12feae53ff5181447768cc13e41.png)
数据合并,pandas 提供了多种将 Series、DataFrame 对象组合在一起的功能,用索引与关联代数功能的多种设置逻辑可执行连接(join)与合并(merge)操作。
![8f0fe03a3be14c1ff7316226e0635a6f.png](https://i-blog.csdnimg.cn/blog_migrate/47394bfa1f8e620f30950f0ba80a9dc7.png)
为 DataFrame 追加行:
![fd9f69a24028c8d575b1e6dcaaea0c57.png](https://i-blog.csdnimg.cn/blog_migrate/39aa92be05ec1f42756b54bc9d148175.jpeg)
分组,“group by” 指的是涵盖下列一项或多项步骤的处理流程:
分割:按条件把数据分割成多组;
应用:为每组单独应用函数;
组合:将处理结果组合成一个数据结构。
![cff51465bb48f7103675207772e7d507.png](https://i-blog.csdnimg.cn/blog_migrate/82323a84524ea3dc74bba5d5c6fec614.png)
先分组,再用 sum()函数计算每组的汇总数据:
![44a02c7248f17e96c8fc2429e33359ac.png](https://i-blog.csdnimg.cn/blog_migrate/74b31c513c2dc5c3f1a8fe879dbbb039.png)
多列分组后,生成多层索引,也可以应用 sum 函数:
![d2a95cf7533bbc97f8b37df686fab064.png](https://i-blog.csdnimg.cn/blog_migrate/21472764b8aae62f13246ec93613b94e.png)
以上为学习所得,希望对你有帮助。