热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数据分析05

pandasSeries和DataFrameSeriesDataFrameDataFrame接收数据DataFrame的描述信息DataFrame的中排序的方法pandas之loc


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由两部分构成,键————>值

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


DataFrame

在这里插入图片描述
这个方法对应的参数如上

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)

在这里插入图片描述
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) #将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行

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


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)

在这里插入图片描述
在这里插入图片描述
由此可见,无论传的是哪个列索引,都会将整体进行排序

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"]))

在这里插入图片描述
如何进行行列同时改?
方括号先写数组,后写字符串,比如:

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

在这里插入图片描述


推荐阅读
author-avatar
朱小小喵喵_972
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有