作者:朱小小喵喵_972 | 来源:互联网 | 2023-05-26 16:47
pandasSeries和DataFrameSeriesDataFrameDataFrame接收数据DataFrame的描述信息DataFrame的中排序的方法pandas之loc
pandas Series和DataFrame Series DataFrame DataFrame的描述信息 DataFrame的中排序的方法 pandas之loc
Series和DataFrame Series 相比于numpy,pandas不仅能处理数值型的数据,还能处理其他类型的数据。
Series:一维数组。DataFrame:二维数组,Series容器。
Series的创建:
import pandas as pdimport string a= pd. Series( [ 1 , 2 , 5 , 11 , 64 , 1 ] ) print ( type ( a) ) print ( a) t= pd. Series( np. arange( 10 ) , index= list ( string. ascii_uppercase[ : 10 ] ) ) print ( t) print ( type ( t) ) print ( t[ "A" ] ) dict = { "姓名" : "小红" , "年龄" : 18 , "电话" : 123456 } t1= pd. Series( dict ) print ( type ( t1) ) print ( t1) print ( t1[ "姓名" ] )
DataFrame 这个方法对应的参数如上
r= pd. DataFrame( np. arange( 12 ) . reshape( 3 , 4 ) ) print ( r) print ( "*" * 100 ) s= pd. DataFrame( np. arange( 12 ) . reshape( 3 , 4 ) , index= list ( "abc" ) , columns= list ( "defg" ) ) print ( s)
index表示行索引,columns表示列索引。
DataFrame接收数据 from pymongo import MongoClientclient= MongoClient( ) collections= client[ "douban" ] [ "tv1" ] data= collections. find( ) print ( list ( data) ) df= pd. Dataframe( list ( data) ) print ( df)
利用MongoClient搜索数据,用Dataframe接收(注意:如果没下载此数据库,无法得到此数据。)
DataFrame的描述信息 q= pd. DataFrame( np. arange( 12 ) . reshape( 3 , 4 ) ) print ( q) print ( q. values) print ( "*" * 50 ) print ( q. index) print ( "*" * 50 ) print ( q. columns) print ( "*" * 50 ) print ( q. info) print ( q. describe( ) ) print ( "*" * 50 ) print ( q. head( 2 ) )
DataFrame的中排序的方法 e= pd. DataFrame( np. arange( 25 ) . reshape( 5 , 5 ) , index= list ( "abcde" ) , columns= list ( "fghij" ) ) print ( e) e= e. sort_values( by= "f" , ascending= False ) print ( e) print ( "*" * 100 ) e= e. sort_values( by= "h" , ascending= False ) print ( e)
由此可见,无论传的是哪个列索引,都会将整体进行排序
e= pd. DataFrame( np. arange( 25 ) . reshape( 5 , 5 ) , index= list ( "abcde" ) , columns= list ( "fghij" ) ) print ( e) print ( e[ : 3 ] ) print ( e[ "h" ] ) print ( type ( e[ "h" ] ) )
如何进行行列同时改? 方括号先写数组,后写字符串,比如:
e[ : 2 ] [ "h" ]
pandas之loc 经过pandas优化过的选择方式 e.loc :通过标签获取数据(标签就是字符串) e.iloc:通过位置获取行数据
e1= pd. DataFrame( np. arange( 12 ) . reshape( 3 , 4 ) , index= list ( "abc" ) , columns= list ( "wxyz" ) ) print ( e1) print ( e1. loc[ "a" , "z" ] ) print ( e1. iloc[ : , 2 ] )
w x y z a 0 1 2 3 b 4 5 6 7 c 8 9 10 11 3 a 2 b 6 c 10 Name: y, dtype: int32
pandas之布尔索引 df&#61; pd. read_csv( "wom.csv" ) print ( df) print ( df[ ( 50 < df[ "年龄" ] ) & ( df[ "年龄" ] > 50 ) ] )
狗 年龄0 12 32 1 15 62 2 12 62 狗 年龄1 15 62 2 12 62
pandas之字符串方法