Pandas数据科学必备Python常用表


Pandas可以说是数据科学最重要的Python包。它不仅为您提供了许多方法和功能,使数据处理变得更容易,而且它还针对速度进行了优化,与使用Python内置函数处理数字数据相比,它具有显着的优势。当第一次学习时难以记住你需要的所有功能和方法,而在Dataquest我们主张习惯咨询pandas文档,很方便有一个参考,所以我们把这个放在一起帮你解决!如果有不懂得可以参考我们下面的文章。

输入域输出

在文章中,我们使用以下简写:

df| 任何pandas DataFrame对象

s| 任何pandas Series对象您还需要执行以下导入才能开始:

cheme="light">
import pandas as pd
import numpy as np

导入数据

cheme="light">
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,字符串或文件,并提取表来dataframes名单
pd.read_clipboard() # 获取剪贴板的内容并将其传递给read_table()
pd.DataFrame(dict) # 从字典,列名称的键,数据的值作为列表

导出数据

cheme="light">
df.to_csv(filename) # 写入CSV文件
df.to_excel(filename) # 写入Excel文件
df.to_sql(table_name, connection_object) # 写入SQL表
df.to_json(filename) # 以JSON格式写入文件

创建测试对象

用于测试代码段

cheme="light">
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]) # 创建一个系列 添加日期索引

查看/检查数据

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

选择

cheme="light">
df[col] # 返回标签col为Series 
df[[col1, col2]] # 的列 返回列作为一个新的数据框
s.iloc[0] # 按位置选择
s.loc['index_one'] # 按索引选择
df.iloc[0,:] # 第一排
df.iloc[0,0] # 第一列的第一个元素

数据清理

cheme="light">
df.columns = ['a','b','c'] # 重命名列
pd.isnull() # 检查空值,返回Boolean Arrray 
pd.notnull() # 相反pd.isnull()
df.dropna() # 掉落包含空值的所有行
df.dropna(axis=1) # 丢弃包含null值的列
df.dropna(axis=1,thresh=n) # 删除所有行的空值都小于n 
df.fillna(x) # 用x 
s.fillna(s.mean()) # 替换所有空值 将所有空值替换为均值(均值可以用统计模块中的几乎任何函数替换)
s.astype(float) # 将系列的数据类型转换为float 
s.replace(1,'one') # 替换等于所有值1与'one'
s.replace([1,3],['one','three']) # 替换所有1 'one'和 批量重命名列| 选择性重命名| 更改索引| 批量重命名索引3'three'
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)

过滤,排序和分组

cheme="light">
df[df[col] > 0.5] # 列col大于0.5
df[(df[col] > 0.5) & (df[col] < 0.7)] # 行 行在哪里0.7 > col > 0.5
df.sort_values(col1) # 按col1按升序排序值
df.sort_values(col2,ascending=False) # 按col2降序排序值
df.sort_values([col1,col2],ascending=[True,False] # 排序的值按col1升序排序,然后col2按降序排列
df.groupby(col) # 返回一列
df.groupby([col1,col2]) # 值的groupby对象 返回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()在每行中应用该功能

加入/合并

cheme="light">
df1.append(df2) # 将行添加df1到末尾df2(列应该相同)
pd.concat([df1, df2],axis=1) # 将列添加df1到末尾df2(行应该相同)
df1.join(df2,on=col1,how='inner') # SQL风格的加入列df1与列在df2其中对于行 col具有相同的值。'how'可以是一个'left','right','outer','inner'

统计

这些也可以应用于一系列。

cheme="light">
df.describe() # 数值列的摘要统计数据
df.mean() # 返回所有列的平均
df.corr() # 返回一个数据帧列之间的相关性
df.count() # 返回每个数据帧列非空值的数量
df.max() # 返回每列中的最高值
df.min() # 返回每列中的最小值
df.median() # 返回每列的中位数
df.std() # 返回每列的标准偏差
本文由 学习链 作者:学习链 发表,其版权均为 学习链 所有,文章内容系作者个人观点,不代表 学习链 对观点赞同或支持,未经许可,禁止转载,题图来自Unsplash,基于CC0协议。

抱歉,评论已关闭!