pandas是一个基于什么的python库_Python中numpy和Pandas库的学习

# Numpy就是一个多维的数组,只是它在我们原来的list上做了一些封装,提供了非常便利的科学运算功能

# Pandas 主要侧重的数据处理

import numpy as np

import pandas as pd

a = np.array([1,2,3,4])

a

b = np.array([[

[1,2],[3,5],

[5,6],[1,3]

]

,[

[1,5],[1,6],

[2,3],[2,7]]

])

b

np.array([[

[1,2],[3,4],

[3,4],[5,4],

[5,6],[7,3],

[5,6],[7,6]

],

[

[1,2],[3,4],

[3,4],[5,4],

[5,6],[7,3],

[5,6],[7,6]

]

])

b1 = np.array([[

[1,2],[3,4],

[3,4],[5,4],

[5,6],[7,3],

[5,6],[7,6]],

[[1,2],[3,4],

[3,4],[5,4],

[5,6],[7,3],

[5,6],[7,6]]])

print( b1.ndim ) # 查看数据维度的

print( b1.dtype)

# numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

# 在指定的间隔内返回均匀间隔的数字。

# 返回num均匀分布的样本,在[start, stop],num=n 就会返回n个数字

np.linspace(1,10 ,10)

np.random.randn(3,5)

Pandas简介

是一个专注于数据处理的一个库 这个库可以帮助数据分析、数据挖掘、算法等工程师岗位的人员轻松的解决数据预处理的问题

# Pandas的第一个数据类型Series

seriesObj = pd.Series([1,3,5,7])

seriesObj

dictSeries = pd.Series({"Python":"unittest" ,"运维":"Python" , "自动化测试":"Python"})

# Series可以接收list类型数据,也可以接收字典类型数据

dictSeries

dictSeries["Python"]

indexSeries = pd.Series([1,'Python','2019-10-26'] , index=["序号" , "语言" , '日期'])

indexSeries

# pandas结合着numpy来进行数学运算

num = pd.Series([2,4,8,16])

res = np.log2(num)

print(res)

type(res)

# DataFrame是Python中Pandas库中的一种数据结构,它类似excel,是一种二维表。

# 或许说它可能有点像matlab的矩阵,但是matlab的矩阵只能放数值型值(当然matlab也可以用cell存放多类型数据),

# DataFrame的单元格可以存放数值、字符串等,这和excel表很像。

# 同时DataFrame可以设置列名columns与行名index,可以通过像matlab一样通过位置获取数据也可以通过列名和行名定位

import pandas as pd

import numpy as np

dataFrame1 = pd.DataFrame([[1 , "接口自动化测试" , "2019-11-10"] , [2 , "UITest" , "2020-01-10"] , [3 , "性能自动化测试" , "2020-03-10"]])

dataFrame1

# 使用字典进行构造

data = {

"人物":["张三丰","张无忌","张翠山"],

"风景":["武当山","松花江","冰火岛"]

}

dataFrame2 = pd.DataFrame(data)

dataFrame2

# 读取csv文件

pd.read_csv("data1.csv" , header = None)

pd.read_csv("data1.csv" , index_col = "d")

file = pd.read_excel("data.xlsx" , sheet_name = "工作表1")

print(file)

print(type(file))

file = pd.read_excel("data.xlsx" , sheet_name = "工作表1")

print(file)

print(type(file))

csv_data = pd.read_csv("executive.csv" )

csv_data

csv_data.shape

csv_data.dtypes

csv_data.age[0]

csv_data.describe()

# date_range() 参数 start 开始时间, periods 间隔时间,freq 按照什么间隔

dates = pd.date_range("20191027" , periods=6 , freq='d')

dates

import numpy as np

dataFrame3 = pd.DataFrame(np.random.rand(6,5) , index = dates , columns = list("ABCDE"))

dataFrame3

dataFrame3.T

dataFrame3["2019-10-27":"2019-10-29"]

dataFrame3.loc["2019-10-27":"2019-10-29" , ["A" ,"B"]]

# loc意义:通过行标签索引行数据

# 例: loc[n]表示索引的是第n行(index 是整数)

# loc[‘d’]表示索引的是第’d’行(index 是字符)

dataFrame3.at[dates[0] , "B"]

# at作用:获取某个位置的值,例如,获取第0行,第a列的值,即:index=0,columns='a'

dataFrame3.head(3)

dataFrame3.tail(2)

# pandas 重新索引

indexObj = pd.Series([4.5,9.4,-2.3] , index = ["A","B","C"])

indexObj

newIndex = indexObj.reindex(['A' , 'B' , 'C' , 'D' , 'E'])

newIndex

# 原来的表格只有三行,所以多出来的行会显示NaN,

# 可以使用fill_value=0来显示没有值的单元格

newIndex = indexObj.reindex(['A' , 'B' , 'C' , 'D' , 'E'] , fill_value=0)

newIndex

travelData= pd.read_csv("qunar_freetrip.csv", index_col=0)

travelData.head()

travelData.shape

travelData.info()

travelData.describe()

travelData.columns

col = travelData.columns.values

print(col)

print(col[8])

col[2].strip()

# 可以看出上面的列值取出后会包含空格,所以使用strip()方法去除首尾空格

travelData.columns = [x.strip() for x in col ]

travelData.columns.values

# 重复项判断

travelData.duplicated()

travelData.duplicated().sum() # 计算重复项数量

100

# 重复数据清理- 就地修改

travelData.drop_duplicates( inplace = True)

travelData.duplicated().sum() # 计算重复项数量,清理后显示为0

0

travelData.shape

(5000, 13)

travelData.shape[0]

5000

travelData.shape[1]

13

travelData.index

Int64Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,

...

5089, 5090, 5091, 5092, 5093, 5094, 5096, 5097, 5098, 5099],

dtype='int64', length=5000)

travelData.index = range(travelData.shape[0])

travelData.index

RangeIndex(start=0, stop=5000, step=1)

travelData.describe().T # 转置效果,行列转置

travelData["价格"].std() # std 标准差函数

2604.3297800791433

sta = (travelData["价格"]-travelData["价格"].mean())/travelData["价格"].std()

# 这边的计算完全看不懂在说什么

# a.mean() 默认对每一列的数据求平均值;若加上参数a.mean(1)则对每一行求平均值;

# DataFrame.abs() 返回一个包含每个元素绝对值的Series/DataFrame。

# 此函数只适用于所有数值元素。

travelData[sta.abs()>3]

ravelData[travelData.节省> travelData.价格]

(未完待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值