Pandas: 1、基础知识

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 4/14/18 11:17 AM
# @Author  : Aries
# @Site    : 
# @File    : main.py
# @Software: PyCharm

'''
以下内容参考: 参考: https://www.cnblogs.com/misswangxing/p/7903595.html
pandas入门:
1 基础知识
pandas: 
含义:python数据分析库是基于NumPy的工具。
缩写:panel data,data analysis
特点:
1引入标准数据模型,提供处理数据的方法
2为时间序列分析提供很好的支持
数据结构:
Series:一位数组,和Numpy中的一维array类似,与List类似
区别:List中元素可以是不同数据类型,
ArraySeries只允许存储相同数据类型
Time-Series:以时间为索引的Series
DataFrame:二维表格数据结构,是Series的的容器
Panel:三维数组,DataFrame容器
Pandas定义的数据类型:SeriesDataFrame

安装:
pip install pandas

2 Pandas使用

3 Series
Series同列表一样,一些列数据,每个数据对应一个索引值.
Series是竖起来的list
实质上创建了一个Series对象
属性显示了Series的索引和数据值
默认的Series索引实际上就是整数
Series可以自定义索引(此时可以认为是一个字典)

有索引的作用:
根据索引操作元素

定义Series的三种形式:
1 列表形式,例如
s = Series([1, 4, 'www', 'tt'])
2 列表+索引形式,例如
s2 = Series(['chao', 'man', '29'], index=['name', 'sex', 'age'])
3 字典形式
s4 = Series({'score':329, 'age':29})

自定义索引:
自定的索引会寻找原来的索引,如果一样的就用原来的值代替
没有值:对齐赋给NaN
判断是否为空:
pandas.isnull(s4)
s4.isnull()
索引赋值:
s4.index=['语文', '数学', 'English']
寻找series中过滤条件后的元素
result = s4[s4 > 300]


4 DataFrame
含义:二维的数据结构,类似电子表格和mysql数据库形式
竖行:称为columns
横行:和Series一样,称为index
通过columnsindex确定主句的位置

定义: 定义一个DataFrame对象的方法,使用dict
字典的键:name, marks, price是每一个维度的名称,就是columns的名称
键的值:是列表,这里没有设定索引,是走默认索引
columns跟字典键相比,其顺序可以被规定
也就是列名的顺序可以转换
DataFrame的索引也能够自定义
例子:
data = {"name":['google', 'baidu', 'yahoo'],
        "marks":[100,200,300],
        "price":[1,2,3]}
            
f1 = DataFrame(data)
f3 = DataFrame(data, columns=['name', 'marks', 'price'], index=['a', 'b', 'c'])
字典嵌套字典定义

另外一篇可以参考的文章:
https://blog.csdn.net/qq_16234613/article/details/62046057

官网:
http://pandas.pydata.org/

Time series-functionality: date range generation and frequency 
conversion, moving window statistics, moving window linear regressions, 
date shifting and lagging. 
Even create domain-specific time offsets and join time series 
without losing data;
'''

from pandas import Series
from pandas import DataFrame
import pandas as pd

def process():
    s = Series([1, 4, 'www', 'tt'])
    print s
    print s.index
    print s.values

    s2 = Series(['chao', 'man', '29'], index=['name', 'sex', 'age'])
    print s2
    print s2['name']
    s2['name'] = 'chen'
    print s2

    sd = {'score':329, 'age':29}
    s3 = Series(sd)
    print s3

    s33 = Series({'score':329, 'age':29})
    print s33

    s4 = Series(sd, index=['java', 'score', 'age'])
    print s4

    print pd.isnull(s4)
    print s4.isnull()
    s4.index = ['语文', '数学', 'English']
    print s4

    s44 = s4 * 2
    print s44

    result = s4[s4 > 300]
    print result
    print type(result)

def processDataFrame():
    data = {"name":['google', 'baidu', 'yahoo'],
            "marks":[100,200,300],
            "price":[1,2,3]}
    f1 = DataFrame(data)
    print f1

    f2 = DataFrame(data, columns=['name', 'price', 'marks'])
    print f2

    f3 = DataFrame(data, columns=['name', 'marks', 'price'], index=['a', 'b', 'c'])
    print f3
    print f3['name']

    newData = {"lang":{'first':'python', 'second':'java'}, 'price':{'first':5000, 'second':2000}}
    f4 = DataFrame(newData)
    print f4

if __name__ == "__main__":
    # process()
    processDataFrame()

猜你喜欢

转载自blog.csdn.net/qingyuanluofeng/article/details/79942208