Pandas 初探(一)

这篇博客介绍了Pandas库中的DataFrame数据结构,通过实例展示了如何创建、操作和访问DataFrame。文章对比了Pandas与R语言在数据存储上的差异,并探讨了DataFrame的特性,包括自动补全、多类型数据存储、索引、切片以及排序功能。同时,解释了行和列的访问方式,强调了切片和`__getitem__`的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pandas 


import pandas as pd 
import numpy as np
import matplotlib.pyplot as plt 


# s has the type of Series
s = pd.Series([1, 3, 5, np.nan, 6, 8])


# dates can generate dates interface 
dates = pd.date_range('20130101', periods = 6)



# DataFrame data structure
np.random.randn():
接受形状参数,用于变换出标准正态分布矩阵。(iid)
index 指定行名,columns指定列名。


df = pd.DataFrame(np.random.randn(6, 4), index = dates, columns = list('ABCD'))
DataFrame具有自动补齐功能。(向最长方向进行复制)


这里的dataframe 支持将不同类型的数据存储在同一列中且不做类型转换,
这在R语言中应该是不可以的.
这体现了在数据结构上两种语言很大的不同。
R中的向量类型c(), 会将不同类型的输入数据全部转化成同一种类型,
如c(10, "str") 其相应的class为character, 即R中的字符串类型。
但在np.ndarray中是允许多类型在同一个数组中存在的,这时相应的dtype为object
即可以兼容两种类型的对象。


dataframe有与ndarray类似的接口,如.shape .T


head, tail
index, columns, values
sort_index, sort_value
ascending 参数用于控制是否上升排列。


dataframe对象有两种访问列的能力, 如A为列cloumn name 
df.A 与df['A']等价。


dataframe的切片与索引规则:
对行或列:
dataframe的切片运算仅可以对行进行切片取相应的值,这与
其内置的ndarray访问行的接口相一致(接口应当是这样设置的)。


其的取item运算(这里指调用与[]有关的方法取dataframe的某行或某列),
在行列的表现很不相同,对于列的调用在前面已经说过了,其有类似于类调用
方法的接口或直接对列名__getitem__,
对于行要想__getitem__,为了与列相区分,不能直接调用[],

首先,从前面使用下标的切片运算的方法可以得到某行(这与python内置序列切片
相同),另外一种方法是使用行名(index)来访问相应的行,但要注意到这里与利用
行标切片的不同之处在于这里不再使用 python内置的[a,b)的方法进行对于切片的
选取,而是采用[a, b]的切片模式,其原因应当与要利用行名进行单行访问的需求
相契合。因为当要利用行名访问单行时,必要地要仅仅使用最少的信息,
————该行行名,
故在不需要下一行行名时是最好的,这样避免了要使用[a, a + 1),要已知 a + 1
行名的要求,这样为使用[a, a]进行单行访问提供了方便。

这里一定要对slice运算与__getitem__ 进行区分,python在进行切片运算(如
range(a, b)时调用的是slice函数与__getitem__不同)


行列双重切片
dataframe的行列名称双重切片基本上与ndarray的切片规则相同,[a1: b1, a2:b2]
但这里需要使用接口loc(这里要注意前面讨论的名称切片形式)
相应地行列下标的双重切片使用iloc

讨论到这里感觉dataframe对象并没有提供很多功能(无论在有关于数据类型的数据存储上
,还是有关于数据操作的方法上)ndarray都提供了足够的支持。
























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值