Pandas简介

     

Pandas简介

 

 



Pandas非常适合许多不同类型的数据:

  • 列数据具有异构类型的表格数据,例如在SQL表或Excel电子表格中
  • 有序和无序(不一定是固定频率)时间序列数据。
  • 具有行和列标签的任意矩阵数据
  • 观察/统计数据集的任何其他形式。

二进制安装程序:https://pypi.org/project/pandas

来源存储库:http://github.com/pandas-dev/pandas

问题回馈:https://github.com/pandas-dev/pandas/issues

Pandas基本命令:

导入以下命令以启动:

import pandas as pd
import numpy as np

 

Pandas查看版本

import pandas as pd
print(pd.__version__)
Key and Imports
df pandas DataFrame object
s pandas Series object
 


密钥和导入
df Pandas DataFrame对象
s Pandas系列对象

创建数据框:

import pandas as pd
df = pd.DataFrame({'X':[78,85,96,80,86], 'Y':[84,94,89,83,86],'Z':[86,97,96,72,83]});
print(df)

 

复制

样本输出:

    XYZ                                                          
0 78 84 86                                                          
1 85 94 97                                                          
2 96 89 96                                                          
3 80 83 72                                                          
4 86 86 83                                       

创建数据系列:

import pandas as pd
s = pd.Series([2, 4, 6, 8, 10])
print(s)

 

样本输出:

0 2                                                                
1 4                                                                
2 6                                                                
3 8                                                                
4 10                                                                
dtype:int64

创建测试对象
pd.DataFrame(np.random.rand(20,5)) 5列20行随机浮动
pd.Series(my_list) 从可迭代的my_list创建系列
df.index = pd.date_range('1900/1/30', periods=df.shape[0]) 添加日期索引

查看/检查数据

df.head(n) DataFrame的前n行
df.tail(n) DataFrame的最后n行
df.shape 行数和列数
df.info() 索引,数据类型和内存信息
df.describe() 数值列的摘要统计
s.value_counts(dropna=False) 查看唯一值和计数
df.apply(pd.Series.value_counts) 所有列的唯一值和计数

选拔

df [col] 返回列的标签col为Series
df [[col1,col2]] 将列作为新的DataFrame返回
s.iloc [0] 按位置选择
s.loc ['index_one'] 按索引选择
df.iloc [0 ,:] 第一排
df.iloc [0,0] 第一栏的第一元素

数据清理

df.columns = ['a','b','c'] 重命名列
pd.isnull() 检查空值,返回布尔值Arrray
pd.notnull() 与pd.isnull()相反
df.dropna() 删除所有包含空值的行
df.dropna(axis=1) 删除所有包含空值的列
df.dropna(axis=1,thresh=n) 删除所有行的少于n个非空值
df.fillna(x) 用x替换所有空值
s.fillna(s.mean()) 用均值替换所有空值
s.astype(float) 将系列的数据类型转换为float
s.replace(1,'one') 将所有等于1的值替换为“ 1”
s.replace([2,3],['two', 'three']) 将所有2替换为“两个”,将3替换为“三个”
df.rename(columns=lambda x: x + 1) 列的重命名
df.rename(columns={'old_name': 'new_ name'}) 选择性重命名
df.set_index('column_one') 更改索引
df.rename(index=lambda x: x + 1) 索引的重命名

筛选,排序和分组依据

df[df[col] > 0.6] 列col大于0.6的行
df[(df[col] > 0.6) & (df[col] < 0.8)] 0.8> col> 0.6的行
df.sort_values(col1) 按col1升序对值进行排序
df.sort_values(col2,ascending=False) 按col2降序对值进行排序。5
df.sort_values([col1,col2],ascending=[True,False]) 按col1升序对值排序,然后按col2降序对值排序
df.groupby(col) 返回一个groupby对象以获取一列中的值
df.groupby([col1,col2]) 从多个列返回groupby对象以获取值
df.groupby(col1)[col2] 返回col2中值的平均值,并按col1中的值分组
df.pivot_table(index=col1,values=[col2,col3],aggfunc=mean) 创建一个数据透视表,该数据透视表按col1分组并计算col2和col3的平均值
df.groupby(col1).agg(np.mean) 在每个列中查找每个唯一col1组的平均值
df.apply(np.mean) 在每列上应用函数np.mean()
nf.apply(np.max,axis=1) 在每行上应用函数np.max()

追加/合并

df1.append(df2) 将df1中的行添加到df2的末尾(列应相同)
pd.concat([df1, df2],axis=1) 将df1中的列添加到df2的末尾(行应相同)
df1.join(df2,on=col1, how='inner') SQL样式将df1中的列与df2中的列连接在一起,其中col的行具有相同的值。“方法”可以是“左”,“右”,“外”或“内”

统计

df.describe() 数值列的摘要统计
df.mean() 返回所有列的平均值
df.corr() 返回DataFrame中列之间的相关性
df.count() 返回每个DataFrame列中非空值的数量
df.max() 返回每一列的最大值
df.min() 返回每列中的最小值
df.median() 返回每列的中位数
df.std() 返回每列的标准偏差

汇入资料

pd.read_csv(filename) 从CSV文件
pd.read_table(filename) 来自定界文本文件(例如TSV)
pd.read_excel(filename) 从Excel文件
pd.read_sql(query, connection_object) 从SQL表/数据库读取
pd.read_json(json_string) 从JSON格式的字符串,URL或文件中读取。
pd.read_html(url) 解析html URL,字符串或文件,并将表提取到数据框列表中
pd.read_clipboard() 获取剪贴板中的内容并将其传递给read_table()
pd.DataFrame(dict) 从字典中,列名称的键,列表中数据的值

汇出资料

df.to_csv(filename) 写入CSV文件
df.to_excel(filename) 写入Excel文件
df.to_sql(table_name, connection_object) 写入SQL表
df.to_json(filename) 以JSON格式写入文件
上一篇:SQL优化例子


下一篇:Pandas重复值处理