数据分析05

pandas

  • Series和DataFrame
    • Series
    • DataFrame
      • DataFrame接收数据
    • DataFrame的描述信息
    • DataFrame的中排序的方法
  • pandas之loc
    • pandas之布尔索引
    • pandas之字符串方法

Series和DataFrame

Series

相比于numpy,pandas不仅能处理数值型的数据,还能处理其他类型的数据。

Series:一维数组。DataFrame:二维数组,Series容器。

Series的创建:

import pandas as pd
import string
a=pd.Series([1,2,5,11,64,1])  #Series的创建
print(type(a))
print(a)
t=pd.Series(np.arange(10),index=list(string.ascii_uppercase[:10])) #index指定索引类型
print(t)
print(type(t))
print(t["A"])

#对于字典
dict={"姓名":"小红","年龄":18,"电话":123456}
t1=pd.Series(dict)
print(type(t1))
print(t1)   #变成一一对应


#Series的切片和索引
print(t1["姓名"])

#numpy处理数值数据,pandas还可以帮我们处理其他类型的数据,Series由两部分构成,键————>值

数据分析05_第1张图片
数据分析05_第2张图片
数据分析05_第3张图片

DataFrame

数据分析05_第4张图片
这个方法对应的参数如上

r=pd.DataFrame(np.arange(12).reshape(3,4))  #用DataFrame创建一个3*4的矩阵
print(r)
print("*"*100)
s=pd.DataFrame(np.arange(12).reshape(3,4),index=list("abc"),columns=list("defg")) #注意,index和columns必须将字符串强转为列表类型
print(s)

数据分析05_第5张图片
index表示行索引,columns表示列索引。

DataFrame接收数据

from pymongo import MongoClient

 client=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)   #将q变为一个二维的列表
print("*"*50)
print(q.index)         #显示行索引信息
print("*"*50)
print(q.columns)      #显示列索引信息
print("*"*50)
print(q.info)
print(q.describe())#展示q的概览
print("*"*50)
print(q.head(2))  #得出q的前2行信息,默认时是5行

数据分析05_第6张图片
数据分析05_第7张图片
数据分析05_第8张图片

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)   #by后面只能传列索引参数且只能传一个
print(e)
print("*"*100)
e=e.sort_values(by="h",ascending=False)   #用于对比
print(e)

数据分析05_第9张图片
数据分析05_第10张图片
由此可见,无论传的是哪个列索引,都会将整体进行排序

e=pd.DataFrame(np.arange(25).reshape(5,5),index=list("abcde"),columns=list("fghij"))
print(e)
#pandas取行或者取列的注意点
#方括号写数组,表示取行,对行进行操作
#写字符串,表示取列索引,对列进行操作
print(e[:3])
print(e["h"])
print(type(e["h"]))

数据分析05_第11张图片
如何进行行列同时改?
方括号先写数组,后写字符串,比如:

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=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之字符串方法

数据分析05_第12张图片

你可能感兴趣的:(数据分析,pandas,python)