Python中Series,List,DataFranme,Dict,元组之间的区别!!!

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

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

2.np.array
python中的list和array的不同之处
list是列表,可以通过索引查找数值,但是不能对整个列表进行数值运算

b=[1,2]
b[1]
Out[97]: 2
type(b)
Out[98]: list
b+b
Out[99]: [1, 2, 1, 2]

array是数组,也可以通过索引值查找数据,但是能对整个数组进行数值运算

In [100]: a=np.array([1,2])
In [101]: a[1]
Out[101]: 2
In [102]: type(a)
Out[102]: numpy.ndarray
In [103]: a+a
Out[103]: array([2, 4])

3.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()

4.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的一行数据

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

#建立字典
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'} 
#提取字典中的信息
dict['Name']
#字典值更新
dict['Age']=15

#创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值

dict.fromkeys(seq[, val])

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

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

参考链接:
https://blog.csdn.net/u012474716/article/details/78550391
https://blog.csdn.net/Chrsitina_S/article/details/103058087?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161828763416780255258799%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161828763416780255258799&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-8-103058087.first_rank_v2_pc_rank_v29&utm_term=python%E7%9A%84DataFrame%2C+Series%2C+ndarray%2C+list%2C+dict%2C+tuple
https://bbs.csdn.net/topics/392459329?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161828763416780255258799%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161828763416780255258799&biz_id=&utm_medium=distribute.pc_search_result.none-task-discussion_topic-2allfirst_rank_v2~rank_v29-7-392459329.first_rank_v2_pc_rank_v29&utm_term=python%E7%9A%84DataFrame%2C+Series%2C+ndarray%2C+list%2C+dict%2C+tuple

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值