Python中List,Series,DataFranme,Dict,元组之间的联系和区别

最近编写程序的时候,要经常进行数据类型的切换,做一下简单的总结,有什么不足的地方,大家多多交流哈~~~~

1.List:

List是一个一维的列表,我们可以利用下标进行值得追踪(不要忘了!python第一个元素的下标从0开始),每个元素可变,类型可变。其方便之处在于可以用append函数进行添加

c=[1,2,3,4,5]

但是list仅仅支持“+”与“*”的运算,以及比较运算,但我们不能进行复杂的函数运算

2.Series:

Series:属于pandas库,相当于np.array,与list不同的是,Series带有索引index

S1=pd.Series([1,2,3,4,5])
S2=pd.Series([12,3,4,5],index=['a','s','d','f','g'])

当Series没有规定索引时,会自动生成数字索引,可以通过索引获取或更改数据,且索引和数据值之间是相关联的。
前面说到List不能直接做一些复杂的运算,但是Series可以。因此,需要将List转换成Series,这里用一个求相关系数做例子:

from pandas import Series
#生成两个List
a=[1,2,3,4,5]
b=[8,6,5,3,1]
#将列表值转化成Series
S1=Series(a)
S2=Series(b)
#计算相关系数
cor=S1.corrS2
print(cor)
#将Series再转化成List
a1=S1.tolist()
b1=S2.tolist()

3.DataFrame

DataFrame:可以直接把它想象成Excel表格,有行表头与列表头,表头可以自己定义,可以是非数字的

a=pd.DataFrame(np.random.rand(4,5),index=list("ABCD"),columns=list('abcde'))

下面主要讨论下从DataFrame的构建和提取
1)利用列表(列表长度要保证相同)先构建字典,然后将字典转换成DataFrame

#构建两个字典
p={'N':[1,2,3]}
m={'O':[4,5,6]}
#将字典构建成DataFrame
dfp=DataFrame(p)
dfm=DataFrame(m)
#将两个DataFrame进行拼接,axis=1索引拼接
dfc=pd.concat([dfp,dfm],axis=1)

2)提取DataFrame中的元素

df.loc[:,'N'] #取N列,且取出的一列数值是Series
df.iloc[3,4]#loc取index,iloc取数值标签
df['N']#取列索引为N的一列数据
df,ix['0']#取行索引为0的一行数据

4.Dict字典

Dict:相当于一个地址簿,以键(名字)值(具体的详细信息)对的形式存在,并且键是唯一的(若一个键出现两次,前一个值会被后一个值代替,所以键不可以用List),字典中的键值对没有顺序

#建立字典
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'} 
#提取字典中的信息
dict['Name']
#字典值更新
dict['Age']=15
# 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
dict.fromkeys(seq[, val])

5.元组

元组与列表类似,但是列表不可以更改,元组的形式是圆括号“()”,列表是中括号“[ ]”,元组中的值可以通过下标进行访问。

tup1 = ('Google', 'Runoob', 1997, 2000)

参考链接:
https://blog.csdn.net/u012474716/article/details/78550391

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值