Pandas用法
1. Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。

2. DataFrame是Pandas中的一个表格型的数据结构,包含有一组有序的列,每列可以是不同的值类型
(数值、字符串、布尔型等),DataFrame即有行索引也有列索引,可以被看做是由Series组成的字典。
3. 它是一种类似于一维数组的对象,是由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签
(即索引)组成。仅由一组数据也可产生简单的Series对象。
4. 应用领域:包括金融,神经科学,经济学,统计学,广告,网络分析,等等。
4.安装方式:安装Anaconda,即可调用pandas库
5. 基本用法:
前提:import pandas as pd
5.1 Series
1.一维语法:pd.Series(data,index)
data:数据
index:数据的索引值,相当于字典中的key
5.2 DataFrame(df)
df = pd.DataFrame(二维数据,行名,列名),index是行,column是列
1.多个Series构建的DataFrame
2.用法:
删除行或列,用df.drop('行名或列名',axis=0/1),axis=0表示删除行,axis=1表示删除列
获取某一行:df.loc['行名']或数字df.loc[i]第i行
获取某一行某一列值:df.loc['行名','列名']
获取某几行某几列值:df.loc[['行名1','行名2'...],['列名1','列名2'...]]
对df内部进行判断输出:如df[df['列名']>0],第一个df为判断输出的二维数列转为df格式
对某个df进行分组计算:df.groupby('列名'),会根据某列名中的值整成一个集set,然后输出,如果后面加操作函数,会根据操作函数操作如.mean()
对df进行数据分析:df.describe(),计数、平均值、标准层、最小值,25% 50% 75% 位置的值、最大值
两个df用join进行连接,合并成一个新的表
某一列的值,把列里面的值汇总成一个集:df['列名'].unique()
某一列的值,得出不重复值的个数:df['列名'].nuunique()
某一列的值,汇总成一个集,并分析每个值出现的次数:df['列名'].value_counts()
对采集到的值应用自定义的函数:df['列名'].apply(自定义的函数的函数名),例如用lambda:df['列名'].apply(lambda x: x*x)
获取df的所有列名:df.columns
按照某一列进行排序:df.sort_value('列名'),值从小到大
寻找表中的空值:df.isnull()
6. 数据透视表
Pandas 的数据透视表能自动帮你对数据进行分组、切片、筛选、排序、计数、求和或取平均值
语法:df.pivot_table(data, values='data中列名', index=['data中列名'], columns=['data中列名'])
value:代表我们需要汇总统计的数据所在的列
7. 导入导出数据:
读取 CSV 文件:pd.read_csv()
输出 CSV 文件:pd.to_csv(),如果加index=False,表示不用序号也写入到csv文件中
读取 Excel 表格文件:pd.read_excel() ,默认是Sheet1,有指定要加:sheet_name='Sheet名'
写入 Excel 表格文件:pd.to_excel() ,默认是Sheet1,有指定要加:sheet_name='Sheet名'
读取html文件:pd.read_html('url地址'),需要通过df['number']访问不同数据
8. 时间序列
创建一个连续的日期数列:pd.date_range(start='开始日期',end='结束日期')
创建一个连续的日期数列,指定天数:pd.date_range(start='开始日期',periods=整数)
创建一个连续的日期数列,按照频率:pd.date_range(start='开始日期',,end='结束日期',priods=整数)
9.日期对比: 先获取指定行的日期,例如最后一行的日期值:df.iloc[-1:]['date'],此时是Serise类型
取出date值:df.iloc[-1:]['date'].values[0],此时是datetime64类型,转成str可以进行对比判断
如果要转成2023-01-01的格式:pd.to_datetime(df.iloc[-1:]['date'].values[0]).strftime('%Y-%m-%d')
10.条件判断:
10.1两个条件判断:df2 = df[(df['New IP Address'] == '10.159.176.31') & (df['Stack'] ==1)],表示查询表中ip地址且Stack字段是1的条目
11.将数列转成pandas:
例如Datalist是一个数列,可以使用:pd.DataFrame(Datalist)
12.获取pandas dtype为object的值:
例如:df['ip'].values会获取得到数列,如果想获得str可以使用:df['ip'].values[0]