pandas中size⽅法_Pandas⽤法总结
Pandas⽤法总结
Pandas简介
Pandas是基于NumPy的⼀种⼯具,该⼯具是为了解决数据分析任务⽽创建的。Pandas纳⼊了⼤量库和⼀些标准的数据模型,提供了⾼效地操作⼤型数据库所需的⼯具。Pandas提供了⼤量能使我们快速便捷地处理数据的函数和⽅法。Pandas基于两种数据类型:series 和dataframe
Series
Series是Pandas中最基本的对象,类似⼀维数组。事实上,Series基本上就是基于NumPy的数组对象来的,和NumPy的数组不
同,Series能为数据⾃定义标签,也就是索引(index),然后通过索引来访问数组中的数据。⽤法总结如下:
Series对象的创建
# pandas 学习
import pandas as pd
from pandas import Series,DataFrame
import numpy as np
# ⼀维数组
sel = Series([1,2,3,4])
# 会同时打印索引和对应的元素
print(sel)
# 但通常我们会⾃⼰创建索引 index代表索引
# sel= Series(data=[1,2,3,4],index=['a','b','c','d'])
sel = Series(data=[1,2,3,4],index=list('abcd'))
print('数组:')
print(sel)
# 获取内容
print('数组值:',sel.values)
# 获取索引
print('数组下标',sel.index)
# 同时获取索引和值
print('同时获取索引和对应值',list(sel.iteritems()))
# 将字典转换为Series
dict = {'red':100,'back':400,'green':300,'pink':900}
se3 = Series(dict)
print(se3)
Series数据获取
# Series 数据获取
sel = Series(data = [1,2,3,4], index = list('abcd'))
print(sel)
# Series 对象同时⽀持位置和标签两种⽅式获取数据
print('索引下标:',sel['c'])
print('位置下标:',sel[2])
# 获取不连续的数据
print('索引下标:')
print(sel[['a','c']])
print('位置下标:')
print(sel[[1,3]])
# 可以使⽤切⽚ 取数据
isnull的用法print('位置切⽚:')
print(sel[1:3]) # 左包含右不包含
print('索引切⽚:')
print(sel['b' : 'd']) # 左右都包含
# 重新赋值索引的值
sel.index = list('dcba')
print(sel)
# reindex 重新索引,会返回⼀个新的Series(调⽤reindex将会重新排序,缺失值⽤NaN填补)
index(['b','a','c','d','e']))
# drop() 丢弃指定轴上的项
sel = pd.Series(range(10,15))
print(sel)
# drop
print(sel.drop([2,3]))
Series算术运算
# Series 进⾏算术运算
# 对 Series 的算术运算都是基于 index 来进⾏的
# 我们可以⽤ 加减乘除(+,-,* ,/)这样的运算对两个 Series 进⾏运算
# pandas 根据索引 index 对响应的数据进⾏计算,结果将会以浮点数的形式储存,以避免丢失精度# 如果 pandas 在 两个 Series ⾥不到相同的 index ,对应的位置就返回⼀个空值 NaN
# series(data ,index) 第⼀个是数据 第⼆个是索引 感觉有点别扭
# 只有索引相同才进⾏计算,否则返回空值 NaN
series1 = pd.Series([1,2,3,4],['London','HongKong','HuBei','Lagos'])
series2 = pd.Series([1,3,6,4],['London','Accra','Lagos','Delhi'])
print(series1)
print('\n')
print(series2)
print('\n')
print(series1-series2)
print('\n')
print(series1+series2)
print('\n')
print(series1*series2)
print('\n')
# 同样也⽀持numpy 的数组运算
sel = Series(data=[1,6,3,5],index=list('abcd'))
print('原数组:')
print('\n')
print(sel)
print('\n')
print(sel[sel>3]) # 布尔数组过滤 值⼤于3
print('\n')
print(sel * 2) # 标量乘法
print('\n')
print(np.square(sel)) # 可以直接加⼊到numpy的数学函数 平⽅
DataFrame
DataFrame的创建
# DataFrame 的创建
# ⼆维数据结构(表格形式储存)
# 三个参数 data index columns 分别代表 数据 ⾏索引 列索引
# 使⽤⼆维数组
df1 = DataFrame(np.random.randint(0,10,(4,4)),index=[1,2,3,4],columns=['a','b','c','d']) print(df1)
运⾏结果:
a b c d
1 2 9 6 1
2 0 5 5 0
3 4 4 7 8
4 4 3
5 2
# 使⽤字典进⾏创建(⾏索引由index决定,列索引由字典的键决定) dict = {
'Province': ['Guangdong','Beijing','Qinghai','Fujian'],
'pop': [1.3, 2.5, 1.1, 0.7],
'year': [2018, 2018, 2018, 2018]
}
df2 = pd.DataFrame(dict,index=[1,2,3,4])
print(df2)
# 使⽤ from_dict
dict2 = {'a':[1,2,3],'b':[4,5,6]}
df6 = pd.DataFrame.from_dict(dict2)
print(df6)
# 索引相同的情况下,相同索引的值会相对应,缺少的值会添加NaN data={
'Name':pd.Series(['zs','ls','we'],index=['a','b','c']),
'Age':pd.Series(['10','20','30','40'],index=['a','b','c','d']),
'country':pd.Series(['中国','⽇本','韩国'],index=['a','c','b'])
}
df3 = pd.DataFrame(data)
print(df3)
# to_dict() ⽅法将DataFrame 对象转换为字典
dict = _dict()
print(dict)
运⾏结果:
Province pop year
1 Guangdong 1.3 2018
2 Beijing 2.5 2018
3 Qinghai 1.1 2018
4 Fujian 0.7 2018
a b
0 1 4
1 2 5
2 3 6
Name Age country
a zs 10 中国
b ls 20 韩国
c we 30 ⽇本
d NaN 40 NaN
{'Name': {'a': 'zs', 'b': 'ls', 'c': 'we', 'd': nan}, 'Age': {'a': '10', 'b': '20', 'c': '30', 'd': '40'}, 'country': {'a': '中国', 'b': '韩国', 'c': '⽇本', 'd': nan}} DataFrame对象常⽤属性
# DataFrame 常⽤属性
df_dict={
'name':['James','Curry','Iversion'],
'age':['18','20','19'],
'national':['us','China','us']
}
df = pd.DataFrame(data=df_dict,index=['0','1','2'])
print(df)
print('\n')
# 获取⾏数和列数
print('DataFrame的⼤⼩:',df.shape)
# 获取⾏索引
print('获取DataFrame的⾏索引:',list())
# 获取列索引
print('获取DataFrame的列索引:',list())
print('\n')
# 获取数据的类型
print('获取DataFrame的数据类型:')
print(df.dtypes)
print('\n')
# 获取数据的维度
print('获取数据的维度:',df.ndim)
print('\n')
# values属性 也会以⼆维 ndarray 的形式返回 DataFrame 的数据
print('df的values属性:')
print(df.values)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论