【Python数据分析基础系列之二】Python数据加载

作者: leostudy360 分类: Python 发布时间: 2019-09-26 15:24

当从外部的数据源中抽取出相应的数据,并将数据存入文件或数据库中之后,接下来就是将数据转换为pandas库可以进行操作的数据结构对象(只有转换,才能使用pandas库提供的各种操作来对数据进行分析)。

  ok,因为需要转换为pandas中可以操作的数据结构,所以需要先了解pandas的两个核心数据结构:Series和DataFrame。

一:Serise
  Serise用来表示一维数据结构,由两个相互关联的一维数组组成的(主数组和Index数组),主数组中的数据(表示标签对应的元素)是任意类型的,而Index数组中的数据(表示标签)不是任意类型都可以。、

  Serise定义:

import pandas as pd
s=pd.Series([1,2,3,4])
s
0 1
1 2
2 3
3 4
dtype: int64
s1=pd.Series([1,2,3,4,5],index=[‘a’,’b’,’c’,’d’,’e’])
s1
a 1
b 2
c 3
d 4
e 5
dtype: int64
s1.values
array([1, 2, 3, 4, 5], dtype=int64)
s1.index
Index([‘a’, ‘b’, ‘c’, ‘d’, ‘e’], dtype=’object’
p=pandas.Series([4,5,6,6])
pandas.Series(p)
0 4
1 5
2 6
3 6
dtype: int64
dic={‘a’:1,’b’:2,’c’:3}
pandas.Series(dic)
a 1
b 2
c 3
dtype: int64
二:DataFrame
DataFrame是用来表示二维数据结构(如二维表),由一个类似于Series的标签的一维数组和一个二维数组(包含了一系列列标签和列标签关联的一列数据)。

还可以认为DataFrame是一个由多个Series组成的字典(键为列标签名,值为每一列数据组成的列表)。

DataFrame定义:

data={‘a’:[1,2,3,4],’b’:[5,6,7,8],’c’:[9,10,11,12]}
pd.DataFrame(data)
a b c
0 1 5 9
1 2 6 10
2 3 7 11
3 4 8 12
pd.DataFrame(data,columns=[‘a’,’c’])
a c
0 1 9
1 2 10
2 3 11
3 4 12
pd.DataFrame(data,index=[‘m’,’n’,’o’,’p’])
a b c
m 1 5 9
n 2 6 10
o 3 7 11
p 4 8 12
data={‘a’:[1,2,3,4],’b’:[5,6,7,8],’c’:[9,10,11,12]}
pd.DataFrame(data)
a b c
0 1 5 9
1 2 6 10
2 3 7 11
3 4 8 12
se=pd.Series([3,3,3,3])
sa=pd.DataFrame(data)
sa[‘kkk’]=se
sa
a b c kkk
0 1 5 9 3
1 2 6 10 3
2 3 7 11 3
3 4 8 12 3
nn={‘a’:{‘a1′:1,’a2′:2},’b’:{‘a1′:3,’a2′:4,’a3′:5},’c’:{‘a2′:7,’a4’:9}}
pd.DataFrame(nn)
a b c
a1 1.0 3.0 NaN
a2 2.0 4.0 7.0
a3 NaN 5.0 NaN
a4 NaN NaN 9.0

三:数据加载

  文本文件加载:一般文本文件是txt后缀的。(csv文件:文件的每一行元素都是由逗号分隔的;而txt文件一般由空格或制表符分隔)
  csv文件的数据是列表元素,位于不同列的元素用逗号隔开。

import pandas as pd

读取csv文件

b=pd.read_csv(‘csv1.csv’,encoding=’gbk’,names=[‘1′,’b’,’c’,’d’])
print(b)

读取txt文件

c=pd.read_table(‘txt1.txt’,sep=’,’)
print(c)
import pandas as pd

将DataFrame数据写入csv文件中

data={‘a’:[1,2,3,4],’b’:[4,5,5,6],’c’:[7,8,9,0]}
da=pd.DataFrame(data)

da.to_csv(‘csv2.csv’)
  HTML文件加载:
  to_html()方法:将DataFrame的内部结构转化为嵌在html表格的、、。

import pandas as pd

将DataFrame数据写入html文件中

data={‘a’:[1,2,3,4],’b’:[4,5,5,6],’c’:[7,8,9,0]}
da=pd.DataFrame(data)

print(da.to_html())

abc
0147
1258
2359
3460

   read_html()方法:读取html的表格,并转化为DataFrame数据结构。

import pandas as pd
import html5lib as ht

pp=pd.read_html(‘https://blog.csdn.net/wei8887wei/article/details/14228769’)

print(type(pp))
print(pp[0])
  XML文件加载:XML文件是一种数据存储格式,pandas库中没有处理XML的工具,但是lxml库可以处理XML文件。
 

  Microsoft Excel文件加载:文件是excel表的形式(用以存放列表形式的数据)。
  read_excel()方法:读取excel 2003(.xls)和excel 2007(.xlsx)两种类型文件,变成DataFrame数据结构。

import xlwt
import pandas as pd

a=pd.read_excel(‘ex2.xls’)
print(a)
  to_excel()方法:将DataFrame转化为excel文件

import xlwt
import pandas as pd

DATA={‘a’:[1,2,3,4],’b’:[2,3,4,5],’c’:[6,7,8,9]}
pd1=pd.DataFrame(DATA)

pd1.to_excel(‘ex2.xls’)
  JSON文件加载:JSON文件是一种数据存储格式,使用类似键值对的方式存储数据。
  read_json()方法:读取json文件并转化为DataFrame数据结构。

import pandas as pd

DATA={‘a’:[1,2,3,4],’b’:[2,3,4,5],’c’:[6,7,8,9]}
pd1=pd.DataFrame(DATA)

pd1.to_json(‘json1.json’)
  to_json()方法:将DataFrame转化为json文件。

import xlwt
import pandas as pd

a=pd.read_json(‘json1.json’)
print(a)
  HDF5文件加载:
  数据库读取:
  SQLite:

from sqlalchemy import create_engine
import sqlite3
import pandas as pd

连接sqlite数据库

engine=create_engine(‘sqlite:///foo.db’)

DATA={‘a’:[1,2,3,4],’b’:[2,3,4,5],’c’:[6,7,8,9]}
pd=pd.DataFrame(DATA)

将DataFrame转换为数据库表test

pd.to_sql(‘test’,engine)

将数据库表转换为DataFrame

pd.read_sql(‘test’,engine)
  MongoDB:

import json
import pymongo
import pandas as pd

连接mongodb数据库

mon=pymongo.MongoClient(‘localhost’,27017)

db=mon.mydatabase

创建集合

collection=mon.mycollection

创建DataFrame

DATA={‘a’:[1,2,3,4],’b’:[2,3,4,5],’c’:[6,7,8,9]}
pd1=pd.DataFrame(DATA)

将DataFrame转化为json对象

recode=json.loads(pd1.T.to_json()).values()

存入数据库中

collection.mydocument.insert(recode)

从数据库读取出表,变成DataFrame

cc=collection[‘mydocument’].find()
dataframe=(list(cc))
print(dataframe)
    MYSQL:
————————————————
版权声明:本文为CSDN博主「墨染柒香」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35187510/article/details/80078493

打赏 赞(0)
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏

如果觉得资源对您有用,请随意打赏!您的打赏是我不断前进的动力!更多内容可关注大数据圈儿微信公众号

大数据圈儿

发表评论