Pandas

阿里云双11来了!从本博客参与阿里云,服务器最低只要86元/年!

Pandas是基于NumPy的数据分析模块。纳入了大量库和一些标准的数据模型,提供了高效操作大型数据集所需的工具。((panel data&data analysis))

1、数据结构

(1)Series:带标签的一维数组,与numpy里array类似。

#字典 -> Series:

data = {‘a’ : 0., ‘b’ : 1., ‘c’ : 2.}

s=Series(data)

print(s)

data = {‘a’ : 0., ‘b’ : 1., ‘c’ : 2.}

s = Series(data,index=[‘b’,’c’,’d’,’a’])#索引顺序保持不变,缺少的元素使用NaN填充

print(s)

pd.isnull(s) #对每一个元素进行判断

pd.notnull(s)

s.isnull() #series也有实例方法

(2)Time-Series:以时间为索引的Series

  (3)DataFrame:带标签的二维的表格型数据结构。可以将DataFrame理解为Series的容器。数据帧(DataFrame)是二维数据结构,即数据以行和列的表格方式排列。

DataFrame可以被看成是以Series组成的字典。它和Series的区别在于,不但具有行索引,且具有列索引。

DF可以使用字典、列表、序列、np的ndarray、另一个DF创建。

Index对象:构建Series或dataframe时,所用到的任何数组或其他序列的标签都会被转换成一个Index对象。—Index对象是不可修改的,功能类似固定大小的有序集合。

(4)Panel:带标签的三维的数组,可以理解为DataFrame的容器

2、数据加载,查看

import pandas as pd

import numpy as np

import os

os.chdir(‘C:\\Users\\chen\\File’)

#写数据到csv,使用to_csv()方法将数据写到一个以逗号分隔符的文件中

df1 = DataFrame([[1, 2, 3],

    [4, 5, 6],

    [7, 8, 9]],

index=[‘a’,’b’,’c’],columns=[‘one’,’two’,’three’])

df1.to_csv(‘out1.csv’,sep=’,’,header=True)    #有head写入

# 使用read_csv()读取文件

# 自己定义列名, 使用names参数,接受一个列表

pd.read_csv(‘pandas_read.csv’) #第一行为列名

pd.read_csv(‘pandas_read.csv’, header=None)#使用默认的列名

pd.read_csv(‘ pandas_read.csv’,sep=’,’,names=[‘a’,’b’,’c’,’d’, ‘message’])  # sep指定分隔符

#不规整数据问题,跳着读取数据

pd.read_csv(‘pandas_read2.csv’, skiprows=[0,3,5])   #跳过0,3,5行

pd.read_csv(‘pandas_read3.csv’)          #缺失值处理,自动填NaN

#读取excel数据

import os

os.chdir(‘C:\\Users\\chen\\File’)

df = pd.read_excel(‘test.xlsx’)

df

#写到excel

df.to_excel(‘test2.xlsx’)

#写数据到json

df1 = DataFrame([[1, 2, 3],

    [4, 5, 6],

    [7, 8, 9]],

index=[‘a’,’b’,’c’],columns=[‘one’,’two’,’three’])

df.to_json(‘a.json’)#字典形式

#从json读数据

pd.read_json(‘a.json’)#读取json数据

pd.read_json(json_string)

 json_string = ‘{“姓名”:[“张三”,”李四”], “年龄”:[18, 19]}’;

 df = pd.read_json(json_string)

 print(df)

#读txt

data = pd.read_csv(“pandas.txt”)#读取txt数据

data.to_csv(‘pandas.txt’)#写入txt数据

#read table  #和上面的基本一样,只是默认分割符号不同。上面的是逗号,这里的是\t

data = pd.read_table(“pandas.txt”,sep=”,”)

#读取html数据

lst = pd.read_html(‘http://quote.stockstar.com/’)

lst[0][0:1]        #第一个第一行

lst[2][0:10]       #获取多个行

#从剪贴板抓取数据

#{“one”:{“a”:1,”b”:4,”c”:7},”two”:{“a”:2,”b”:5,”c”:8},”three”:{“a”:3,”b”:6,”c”:9}}

a=pd.read_clipboard()

#数据查看

import os

import json

import urllib

os.chdir(‘C:\\Users\\chen\\File’)

url = ‘https://movie.douban.com/j/chart/top_list?type=25&interval_id=100%3A90&action=&start=0&limit=20’

req0 = urllib.request.Request(url=url)

html0 = urllib.request.urlopen(req0).read()

html0=html0.decode(‘utf-8’)

#html0 = bytes.decode(html0,encoding=”utf-8″)

import pandas as pd

df = pd.read_json(html0)#用pandas读

#数据的查看

df.head(3)           #前面三个

df.tail(3)                 #尾巴三个

df.shape

df.iloc[0:3,1] = np.NaN

df[‘rating’]=np.NaN

df.head(5)

df.info()            #是否有空的

df.isnull()              #判断是否有空

df.notnull()

df[‘actors’].isnull()        #看某一列

#把第2列和第3列没有缺失值的行选择出来

df[df[‘value2’].notnull() & df[‘value3’].notnull()]

https://www.jianshu.com/p/807b92f153b7

Python量化投资网携手4326手游为资深游戏玩家推荐:《龙痕守护下载

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论