23种Pandas核心操作,你需要过一遍吗?

开发 开发工具 前端
Pandas是一个Python软件库,它提供了大量能使我们快速便捷地处理数据的函数和方法。一般而言,Pandas是使Python成为强大而高效的数据分析环境的重要因素之一。在本文中,作者从基本数据集读写、数据处理和DataFrame操作三个角度展示了23个Pandas核心方法。

Pandas 是基于 NumPy 构建的库,在数据处理方面可以把它理解为 NumPy 加强版,同时 Pandas 也是一项开源项目。它基于 Cython,因此读取与处理数据非常快,并且还能轻松处理浮点数据中的缺失数据(表示为 NaN)以及非浮点数据。在本文中,基本数据集操作主要介绍了 CSV 与 Excel 的读写方法,基本数据处理主要介绍了缺失值及特征抽取,***的 DataFrame 操作则主要介绍了函数和排序等方法。

[[241508]]

基本数据集操作

(1) 读取 CSV 格式的数据集

  1. pd.DataFrame.from_csv(“csv_file”) 

或者:

  1. pd.read_csv(“csv_file”) 

(2) 读取 Excel 数据集

  1. pd.read_excel("excel_file") 

(3) 将 DataFrame 直接写入 CSV 文件

如下采用逗号作为分隔符,且不带索引:

  1. df.to_csv("data.csv", sep=","index=False

(4) 基本的数据集特征信息

  1. df.info() 

(5) 基本的数据集统计信息

  1. print(df.describe()) 

(6) Print data frame in a table

将 DataFrame 输出到一张表:

  1. print(tabulate(print_table, headersheaders=headers)) 

当「print_table」是一个列表,其中列表元素还是新的列表,「headers」为表头字符串组成的列表。

(7) 列出所有列的名字

  1. df.columns 

基本数据处理

(8) 删除缺失数据

  1. df.dropna(axis=0how='any'

返回一个 DataFrame,其中删除了包含任何 NaN 值的给定轴,选择 how=「all」会删除所有元素都是 NaN 的给定轴。

(9) 替换缺失数据

  1. df.replace(to_replace=Nonevalue=None

使用 value 值代替 DataFrame 中的 to_replace 值,其中 value 和 to_replace 都需要我们赋予不同的值。

(10) 检查空值 NaN

  1. pd.isnull(object) 

检查缺失值,即数值数组中的 NaN 和目标数组中的 None/NaN。

(11) 删除特征

  1. df.drop('feature_variable_name', axis=1

axis 选择 0 表示行,选择表示列。

(12) 将目标类型转换为浮点型

  1. pd.to_numeric(df["feature_name"], errors='coerce'

将目标类型转化为数值从而进一步执行计算,在这个案例中为字符串。

(13) 将 DataFrame 转换为 NumPy 数组

  1. df.as_matrix() 

(14) 取 DataFrame 的前面「n」行

  1. df.head(n) 

(15) 通过特征名取数据

  1. df.loc[feature_name] 

DataFrame 操作

(16) 对 DataFrame 使用函数

该函数将令 DataFrame 中「height」行的所有值乘上 2:

  1. df["height"].apply(*lambda* height: 2 * height) 

或:

  1. def multiply(x): 
  2.  
  3.  return x * 2 
  4.  
  5. df["height"].apply(multiply) 

(17) 重命名行

下面代码会重命名 DataFrame 的第三行为「size」:

  1. df.rename(columns = {df.columns[2]:'size'}, inplace=True

(18) 取某一行的唯一实体

下面代码将取「name」行的唯一实体:

  1. df["name"].unique() 

(19) 访问子 DataFrame

以下代码将从 DataFrame 中抽取选定了的行「name」和「size」:

  1. new_df = df[["name", "size"]] 

(20) 总结数据信息

  1. # Sum of values in a data frame 
  2. df.sum() 
  3. # Lowest value of a data frame 
  4. df.min() 
  5. # Highest value 
  6. df.max() 
  7. # Index of the lowest value 
  8. df.idxmin() 
  9. # Index of the highest value 
  10. df.idxmax() 
  11. # Statistical summary of the data frame, with quartiles, median, etc. 
  12. df.describe() 
  13. # Average values 
  14. df.mean() 
  15. # Median values 
  16. df.median() 
  17. # Correlation between columns 
  18. df.corr() 
  19. # To get these values for only one column, just select it like this# 
  20. df["size"].median() 

(21) 给数据排序

  1. df.sort_values(ascending = False

(22) 布尔型索引

以下代码将过滤名为「size」的行,并仅显示值等于 5 的行:

  1. df[df["size"] == 5] 

(23) 选定特定的值

以下代码将选定「size」列、***行的值:

  1. df.loc([0], ['size']) 

原文链接:

https://towardsdatascience.com/23-great-pandas-codes-for-data-scientists-cca5ed9d8a38

【本文是51CTO专栏机构“机器之心”的原创文章,微信公众号“机器之心( id: almosthuman2014)”】

戳这里,看该作者更多好文

责任编辑:赵宁宁 来源: 51CTO专栏
相关推荐

2022-02-22 09:16:41

AndroidWindows状态栏

2021-08-12 10:36:18

order byMySQL数据库

2023-01-10 19:47:47

Redis原理多线程

2017-12-26 14:17:24

润乾报表

2021-06-15 07:15:15

Oracle底层explain

2022-01-17 20:59:37

开发group by思路

2021-12-01 07:26:13

IO模型异步

2023-09-12 07:31:45

HashMap线程

2024-03-26 07:59:32

IO模型多路复用

2024-03-12 08:20:57

零拷贝存储开发

2015-10-10 11:10:24

重敲代码拷贝粘贴

2021-10-07 20:12:03

MVCC事务原理

2019-03-19 14:11:44

VLANLANMAC

2021-03-11 07:14:01

Epoll原理线程

2019-09-19 08:04:40

网络七层模型TCPUDP

2020-02-09 17:30:54

反转链表程序员节点

2022-08-26 10:41:03

指针C语言

2022-01-27 08:31:20

一致性哈希

2021-03-04 08:06:13

Java代理机制

2016-01-27 10:26:53

JavaScript操作系统
点赞
收藏

51CTO技术栈公众号