一、关于pandas
pandas里面的两大数据结构Series和Dataframe。
Series类似于有索引一维数组的对象,与值不同的是,它多了一个标签,所以可以根据标签取数据。同时,可以将Series看作是一个有序的字典。
Dataframe 是一个表格型的数据结构,含有一个有序的列,不同的列的数据结构可以不一样,同一列的数据类型可以是一样的。
二、Series一些常见操作
import numpy as np import pandas as pd import sys from pandas import Series, DataFrame obj = Series([4, 7, -5, 3]) obj Out[129]: 0 4 1 7 2 -5 3 3 dtype: int64 In [130]: obj.values Out[130]: array([ 4, 7, -5, 3], dtype=int64) In [131]: obj.index#获取索引值 Out[131]: RangeIndex(start=0, stop=4, step=1) In [132]: obj2 = Series([4, 7, -5, 3], index=['d', 'b', 'a', 'c']) obj2 Out[132]: d 4 b 7 a -5 c 3 dtype: int64 In [133]: obj2.index Out[133]: Index(['d', 'b', 'a', 'c'], dtype='object') In [134]: obj2['a']#根据索引获取对应的值 Out[134]: -5 In [135]: obj2['d'] = 6 obj2[['c', 'a', 'd']] Out[135]: c 3 a -5 d 6 dtype: int64 In [136]: obj2[obj2 > 0] Out[136]: d 6 b 7 c 3 dtype: int64 In [137]: obj2 * 2 Out[137]: d 12 b 14 a -10 c 6 dtype: int64 In [138]: np.exp(obj2) Out[138]: d 403.428793 b 1096.633158 a 0.006738 c 20.085537 dtype: float64 In [139]: #索引在不在series索引值中 'b' in obj2#索引在不在series索引值中 Out[139]: True In [140]: #通过字典创建series sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000} obj3 = Series(sdata) obj3 Out[140]: Ohio 35000 Oregon 16000 Texas 71000 Utah 5000 dtype: int64 In [141]: states = ['California', 'Ohio', 'Oregon', 'Texas'] obj4 = Series(sdata, index=states) obj4 Out[141]: California NaN Ohio 35000.0 Oregon 16000.0 Texas 71000.0 dtype: float64 In [142]: pd.isnull(obj4)#检测确实值 Out[142]: California True Ohio False Oregon False Texas False dtype: bool In [143]: pd.notnull(obj4) Out[143]: California False Ohio True Oregon True Texas True dtype: bool In [144]: obj3 Out[144]: Ohio 35000 Oregon 16000 Texas 71000 Utah 5000 dtype: int64 In [145]: obj4 Out[145]: California NaN Ohio 35000.0 Oregon 16000.0 Texas 71000.0 dtype: float64 In [146]: obj3 + obj4 Out[146]: California NaN Ohio 70000.0 Oregon 32000.0 Texas 142000.0 Utah NaN dtype: float64 In [147]: obj4.name = 'population' obj4.index.name = 'state' obj4 Out[147]: state California NaN Ohio 35000.0 Oregon 16000.0 Texas 71000.0 Name: population, dtype: float64 In [148]: #通赋值修改索引值 obj.index = ['Bob', 'Steve', 'Jeff', 'Ryan'] obj Out[148]: Bob 4 Steve 7 Jeff -5 Ryan 3 dtype: int64 In [ ]:
三、Dataframe常见操作