pandas 数据结构

series是具有标签的(也就是具有索引的)一维矢量。frame是一个行和列都具有标签的表格,frame的每一列都是一个series。

from pandas import Series, Dataframe
import pandas as pd

series

  1. 由一组数据产生:obj = Series([4, 7, -5, 3])
  2. 获取数组表示形式和索引对象: obj.values obj.index
  3. 创建的Series带有一个可以对各个数据点进行标记的索引:
    obj2 = Series([4, 7, -5, 3], index=['d', 'b', 'a', 'c'])
  4. 通过索引的方式选取Series中的单个或一组值:obj2['a'] obj2['c', 'a', 'd']
  5. In[]: 'b' in obj2
    Out[]: True
  6. 用字典创建Series:
    sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
    obj3 = Series(sdata)
  7. 不将原字典的键作为索引,通过自定义index查找字典中对应的值,构建Series。如键’California’在字典data中找不到对应的值,便为NaN:
    states = ['California', 'Ohio', 'Oregon', 'Texas']
    obj4 = Series(data, index=states)
  8. 检测缺失数据:pd.isnull(obj4) pd.notnull(obj4)
  9. 按照索引对齐相加,都有合并相加,无则为NaN: obj3 + obj4
  10. Series对象本身及其索引的name属性:
    obj4.name = 'population'
    obj4.index.name = 'state'
  11. 赋值方式修改Series的索引:
    obj.index = ['Bob', 'Steve', 'Jeff', 'Ryan']

DataFrame

  1. 传入字典构建DataFrame
    data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'], 'year': [2000, 2001, 2002, 2001, 2002], 'pop': [1.5, 1.7, 3.6, 2.4, 2.9]}
    frame = DataFrame(data)
  2. DataFrame的列按照指定顺序进行排列
    DataFramef(data, columns=['year', 'state', 'pop'])
    如果传入的列在数据中找不到,就会产生NaN值
    DataFramef(data, columns=['year', 'state', 'pop', 'debt'], index=['one', 'two', 'three', 'four', 'five'])
  3. DataFrame的列获取:frame2['state'] frame.year
  4. DataFrame对象的行获取: fram2.ix['three']
  5. 通过赋值的方式修改列值:frame2['debt'] = 16.5
  6. 给DateFrame对象的列赋Series对象进行精确匹配:
    val = Series([-1.2, -1.5, -1.7], index=['two', 'four', 'five'])
    frame2['debt'] = val
  7. 为不存在的列赋值会创建出一个新列:frame2['eastern'] = frame2.state == 'Ohio'
  8. 用关键字 d e l 删除列:del frame['eastern']
  9. 嵌套字典创建DataFrame:
    pop = {'Nevada': {2001: 2.4, 2002: 2.9}, 'Ohio':{2000: 1.5, 2001: 1.7, 2002: 3.6}}
    frame3 = DataFrame(pop)
    DataFrame(pop, index=[2001, 2002, 2003])
  10. DataFrame转置:frame3.T
  11. DataFrame索引: frame3['Ohio'][:-1] frame3['Nevada'][:2]
  12. 设置DataFrame的index和columns的name属性:
    frame3.index.name = 'year'
    frame3.columns.name = 'state'
  13. values属性以二维ndarray的形式返回DataFrame中的数据:frame3.values
  14. index对象是不可修改的。

猜你喜欢

转载自blog.csdn.net/qq_38195197/article/details/80955159