Python中的Series,List,DataFrame,Dict,元组之间的区别,Python数据保存方式

0.引言

dataframe是pandas的数据类型

np.array是numpy的数据类型

list和dict是python的数据类型

series是pandas的一种数据类型,Series是一个定长的,有序的字典,因为它把索引和值映射起来了。(df提一行就是一个Series)

1.list

list和arry都是[], 有的是不区分,只认python里面只有数组(认为列表list和数组是一个道理,有不同点而已)

list是一个一维列表,我们可以利用下标进行值得追踪(python第一个元素的下标从0开始),能存储任何数据,每个元素可变,类型可变,其方便之处在于可用append函数添加

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

或者
c = list()
c.append(1)
...
c.append(5)

print(c[0]) #取一个元素
print(c[0:3])  #连续取前3个元素
print(c.index(1))  #返回元素的位置

2.np.array

python中的list和array的可以通过索引查找数值; 但是不同之处:

list是列表,但是不能对整个列表进行数值运算

b=[1,2]
b[1]
Out[3]: 2
type(b)
Out[4]: list
b+b     #列表的合并 等同于b.extend(b)
Out[5]: [1, 2, 1, 2]

array是数组,但是能对整个数组进行数值运算

a=np.array([1,2])
a[1]
Out[9]: 2
type(a)
Out[10]: numpy.ndarray
a+a
Out[11]: array([2, 4])

3.Serise:

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

S1=pd.Series([1,2,3,4,5])
S2=pd.Series([1,2,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.corr(S2)
print(cor)
-0.9948497511671097

#将Series再转化成List
a1=S1.tolist()
b1=S2.tolist()

4.DataFrame

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

四个重要属性:index:行索引;columns:列索引;values:值的二维数组;name:名字。

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=pd.DataFrame(p)
dfm= pd.DataFrame(m)

#将两个DataFrame进行拼接,axis=1索引拼接
dfc=pd.concat([dfp,dfm],axis=1)

2)提取DataFrame中的元素


dfc.loc[:,'N'] #获取N列,且去除的一列数值是Series
Out[41]: 
0    1
1    2
2    3
Name: N, dtype: int64

dfc.iloc[2,1] #loc取index,iloc取数值标签
Out[43]: 6

dfc['N'] #获取索引为N的一列数据
Out[44]: 
0    1
1    2
2    3
Name: N, dtype: int64


dfc.ix[0] #获取索引为0的一列数据(这个没理解,有错)

5. Dict字典

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

#建立字典
dict={'Name':'Zara','Age':7,'Name':'Manni'}

#提取字典中的信息
dict['Name']
Out[51]: 'Manni'

#字典更新
dict['Age']=15

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

dict.fromkeys(seq[,val])  #写的不对

6.元组

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

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

Python数据的保存方式

1.pandas保存

df.to_csv()

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值