Pandas常用数据结构

Series:
⭐由一组数据以及一组与之对应的数据标签(即索引)组成。
⭐可以通过pandas.Series来创建Series,每个Series可以看成是DataFrame的一个列。
·出处:Python3智能数据分析
DataFrame:
⭐DataFrame是pandas基本数据结构,类似于数据库中表或者EXCEL中的表格数据格式。
⭐DataFrame既有行索引,也有列索引,可以将其看成是多个Series构成的。
·出处:Web API接口参考


Series类
通过pandas.Series来创建Series数据结构。
pandas.Series(data,index,dtype,name)
上述参数中,data可以为列表,array或者dict。
上述参数中,index表示索引,必须与数据同长度,name代表对象的名称。
代码如下:
import pandas as pd
import numpy as np
#创建series对象
series1 = pd.Series
( [2.8,3.01,8.99,8.59,5.18] )
series1
type(series1)
series1 = pd.Series([2.8,3.01,8.99,8.59,5.18],
index=['a','b','c','d','e'],
name='This is a series')
series1 #行索引
series = pd.Series(np.array([2.8,3.01,8.99,8.59,5.18]),
index=['a','b','c','d','e'])
series
#创建序列的样例,基于字典创建
series4= pd.Series({'北京':2.8,'上海':3.01,'广东':8.99,'江苏':8.59,'浙江':5.18})
series4



Series常用属性
values:返回Series对象所有元素。
index:返回索引.
dtypes:返回数据类型.
shape:返回Series数据形状.
ndim:返回对象的维度.
size:返回对象的个数。

DataFrame类
通过pandas.DataFrame来创建DataFrame数据结构。
pandas.DataFrame(data,index,dtype,
columns)
上述参数中,data可以为列表,array或者dict。
上述参数中,index表示行索引,columns代表列名或者列标签。
代码如下:
import pandas as pd
import numpy as np
list1 = [['张三', 21,'男'],['李四', 20,'女'],['王二', 19,'女']]
list1
df1=pd.DataFrame(list1,columns=['name','age','gender'])
df1
#字典
df2=pd.DataFrame({'name':['张三','李四','王二'],
'age':[21,20,19],
'gender':['男','女','女']})
df2
#数组结构创建
array1=np.array(list1)
array1
df3=pd.DataFrame(array1,columns=['name','age','gender'],
index=['a','b','c'])
df3
df2.values
df2.shape
df2.dtypes
df2.columns.tolist()
df2.ndim
df2.size
df3.index.tolist()




[color=rgba(255, 255, 255, 0)]1
数据获取和保存
pandas内置了十几种数据源读取函数常见的就是CSV和excel。
pandas读取出来的数据直接是数据框格式,方便后续的数据处理和分析。
可以快速的将数据保存为csv或者excel格式。
参数较多,可以自行控制,但很多时候用默认参数。
读取csv时,注意编码,常用编码为utf-8,jbk,gbk2312等。

读写文本文件

文本文件读取
文本文件是一种由若干行字符构成的计算机文件,它是一种典型的顺序文件。
csv是一种逗号分隔的文件格式,因为其分隔符不一定是逗号,又被称为字符分隔文件,文件以纯文本形式存储表格数据(数字和文本)。
⭐使用 read_table来读取文本文件:
pandas.read_table(filepath_or_buffer,
sep='\t',header='infer',names=None,
index_col=None,dtype=None,
engine=None,nrows=None)
⭐使用 read_csv函数来读取csv文件:
pandas.read_csv(filepath_or_buffer,
sep=',',header='infer',names=None,
index_col=None,dtype=None,
engine=None,nrows=None)
下面我们看一个具体的例子:
os.chdir() :方法用于改变当前工作目录到指定的路径。
chdir()方法语法格式如下:
os.chdir(path)
---path要切换到的新路径
import os
os.chdir(r'D:\QQ接收文件\python 学习资料\Python数据分析与应用\data')
import pandas as pd

pd.read_csv('D:/QQ接收文件/python 学习资料/Python数据分析与应用/data/meal_order_info.csv', encoding='gbk')

成功读取csv文件。
| 参数名称 | 说明 |
| filepath | 接收string。代表文件路径。无默认。 |
| sep | 接收string。代表分隔符。read_csv默认为"," , read_table默认为制表符 '[Tab]" 。 |
| header | 接收int 或 sequence 。表示将某行数据作为列名。默认为infer,表示自动识别。 |
| names | 接收array。表示列名。默认为None。 |
| index_col | 接收int、sequence或False。表示索引列的位置,取值为sequence则代表多重索引。默认为None。 |
| dtype | 接收dict。代表写入的数据类型(列名为key,数据格式为 values )。默认为None。 |
| engine | 接收c 或者python。代表数据解析引擎。默认为c |
read_table 和 read_csv 函数中的sep参数是指定文本的分隔符,如果分隔符指定错误,在读取数据的时候,每一行数据将连成一片。
header参数是用来指定列名的,如果是None则会添加1个默认的列名。
encoding代表文件的编码格式,常用的编码有utf-8、utf-16、gbk、gb2312、gb18030等。如果编码指定错误数据将无法读取,IPython解释器会报解析错误。
文本文件的储存

文本文件的存储和读取类似,结构化数据可以通过pandas中的 to_csv
函数实现以csv文件格式存储文件.
DataFrame.to_csv(path_or_buf=None,sep=',',na_rep='',columns=None,
header=True,index=True,
index_lable=None,mode='w',
encoding=None)
| 参数名称 | 说明 |
| path_or_buf | 接收string。代表文件路径。无默认。 |
| sep | 接收string。代表分隔符。默认为"," 。 |
| na_rep | 接收string。代表缺失值。默认为"" . |
| columns | 接收list。代表缺失值。默认为None。 |
| header | 接收Boolean,代表是否将列名写出。默认为True。 |
| index | 接收Boolean,代表是否将行名(索引)写出。默认为True。 |
| index_lable | 接收sequence。表示索引名。默认为None。 |
| mode | 接收特定string。代表数据写入模式。默认为w。 |
| encoding | 接收特定string。代表存储文件的编码格式。默认为None。 |
以上是关于csv文件读取的方式。
数据筛选
方法:
基础索引方式,就是直接引用。
ioc[行名称索引或者条件,列索引名称或者标签]
iloc[行索引位置,列索引位置]
增删改查和条件查询。
熟练掌握drop(labels,axis,inplace=True)的用法。


END
