pandas主要数据对象为Series和DataFrame。
Series
Series是一个一维类似数组对象,包含一个数组的数据和一个与数组关联的数据标签。
若不指定索引值,则默认从0开始计数。可以分别使用values和index属性来获取Series的数值和索引值。例如:
ser1=pd.Series([1,3,4,3])
print(ser1.values)
print(ser1.index)
>>[1 3 4 3]
>>RangeIndex(start=0, stop=4, step=1)
同时,也可以创建一个带索引的Series对象。例如:
ser2=pd.Series([1,3,4,3], index=['a','b','v','d'])
print(ser2)
>> a 1
b 3
v 4
d 3
dtype: int64
index的值可以进行修改,ser.index=range(len(ser))将index的值修改成了从0开始。或者直接赋值更改。
可以直接将dict中的值存入Series中。例如:
dict1={'b': 1, 'a': 2, 'c': 3}
ser3=pd.Series(dict1)
print(ser3)
>> a 2
b 1
c 3
dtype: int64
可以看出,dict中的索引通过排序后存入Series中。
Series也可以转换为dict。将series中的index作为keys,对应的值作为dict的values。例如:
ser2=pd.Series([1,3,4,3], index=['a','b','v','d'])
dict2=dict(ser2)
print(dict2)
>>{'a': 1, 'b': 3, 'v': 4, 'd': 3}
Series中检测数据丢失,可使用ser.isnull(),若返回值为True,则数据丢失。
Series可以直接使用索引值来获取value或者修改value。例如:
ser2=pd.Series([1,3,4,3], index=['a','b','v','d'])
print(ser2['d'])
ser2['b']=7
print(ser2)
>> 3
a 1
b 7
v 4
d 3
dtype: int64
或者使用replace属性,例如ser.replace(1,11)将1替换成11。
在算术运算中,Series会自动对齐不同索引的数据。
Series对本身和索引都有一个name属性,可使用ser.name和ser.index.name获取。
对Series升序降序排列,可以使用:
data.sort_values(ascending = False) #降序排列
data.sort_values(ascending = True) #升序排列
求Series的累计和可以使用:
data.cumsum()