【Python数据分析之pandas01】两个常用的数据结构

Series

    - series可以看做是一个定长的有序字典,与一维数组形式相同,区别是series的索引可以是任意数据类型。

    - series本身拥有一个name属性,它的index也有自己的name属性(这条性质为下文中series传入DataFrame提供基础)。

    - 传入:可以传入一维数组或字典。传入时,可以修改其索引。

#导入数组
a = np.array([1,2,3,4,5])
series1 = pd.Series(a)
print(series1)
print('*'*20)
#传入时修改索引
series2 = pd.Series(a,index=(['a','b','c','d','e']))
print(series2)

'''
结果:
0    1
1    2
2    3
3    4
4    5
dtype: int32
********************
a    1
b    2
c    3
d    4
e    5
dtype: int32
'''

    传入字典时,Series中的索引就是原字典的索引。

#传入字典
dic1 = {"first":1,'second':2,'third':3,'forth':4}
dic_series = pd.Series(dic1)
dic_series

'''
结果:
first     1
forth     4
second    2
third     3
dtype: int64
'''

    修改其索引时,若新定义索引在原字典中不存在,则它的值会被赋为NaN。

dic1 = {"first":1,'second':2,'third':3,'forth':4}
index1 = ['01','second','03','forth']
dic_series = pd.Series(dic1,index=index1)
dic_series

'''
结果:
01        NaN
second    2.0
03        NaN
forth     4.0
dtype: float64
'''

    Series索引还可以通过直接赋值的方式进行就地修改

dic1 = {"first":1,'second':2,'third':3,'forth':4}
dic_series = pd.Series(dic1)
dic_series.index=['01','02','03','04']
dic_series

'''
结果:
01    1
02    4
03    2
04    3
dtype: int64
'''

- series本身拥有一个name属性,它的index也有自己的name属性(这条性质为下文中series传入DataFrame提供基础)。

dic1 = {"first":1,'second':2,'third':3,'forth':4}
dic_series = pd.Series(dic1)
dic_series.name = 'letter'
dic_series.index.name = 'number'
dic_series

'''
结果:
number
first     1
forth     4
second    2
third     3
Name: letter, dtype: int64
'''

DataFrame

    实质是有索引的字典。

    传入:可以传入多个列表或多个Series组成的字典传入,还可传入字典的字典。

    - 用列表传入时,必须保证列表是等长的。列表外部的索引为列索引,并且DataFrame会自动补齐行索引。

data = {'first':[1,2,3],
        'second':[4,5,6],
        'third':[7,8,9]}
frame = pd.DataFrame(data)
frame

结果如下:

    - 用series字典传入时,series原带的索引为列索引,series的name属性为行索引。

s1 = pd.Series({'one':1,'two':2,'three':3},name='first')
s2 = pd.Series({'one':4,'two':5,'three':6},name='second')
s3 = pd.Series({'one':7,'two':8,'three':9},name='third')
frame = pd.DataFrame([s1,s2,s3])
frame

    结果如下:


    同理,数组传入时,外部索引为列索引,内部索引为行索引。

dict1 = {"neveda":{2001:2.4,2002:2.9},
         "ohio":{2001:1.7,2002:3.6}}
frame = pd.DataFrame(dict1)
frame

    结果如下:



        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值