#!/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中元素可以是不同数据类型,
Array和Series只允许存储相同数据类型
Time-Series:以时间为索引的Series
DataFrame:二维表格数据结构,是Series的的容器
Panel:三维数组,DataFrame容器
Pandas定义的数据类型:Series和DataFrame
安装:
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
通过columns和index确定主句的位置
定义: 定义一个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()