如何使用正则表达式和数据类型选择多个DataFrame列

如何使用正则表达式和数据类型选择多个DataFrame列

DataFrame可以与电子表格或具有行和列的数据库中持有的数据集进行比较。DataFrame是一个2D对象。

好吧,1D和2D术语让您困惑了吗?

1D(Series)和2D(DataFrame)之间的主要区别是,您需要忽略的信息点数以到达任何单个数据点。如果您举一个Series的例子,并且想要提取一个值,您只需要一个参考点,即行索引。

与表格(DataFrame)相比,一个参考点不足以到达数据点,您需要行值和列值的交集。

下面的片段显示如何从csv文件创建Pandas DataFrame。

.read_csv()方法默认创建DataFrame。您可以通过在kaggle.com上搜索电影来下载电影数据集。

"""脚本:从csv文件创建Pandas DataFrame。"""
import pandas as pd
movies_dataset = pd.read_csv("https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv")
# 1 打印对象类型
type(movies_dataset)
#2 以表格格式打印前5条记录
movies_dataset.head(5)

2. 选择单独的DataFrame列。 将列名称作为字符串或列表传递给索引运算符将返回列值作为Series或DataFrame。

如果我们传递一个带有列名的字符串,您将会得到Series作为输出,然而,使用只有一个列名的列表将返回DataFrame。我们将通过示例来看看这一点。

# 选择数据作为series
movies_dataset["title"]
0 Avatar
1 Pirates of the Caribbean: At World's End
2 Spectre
3 The Dark Knight Rises
4 John Carter
...
4798 El Mariachi
4799 Newlyweds
4800 Signed, Sealed, Delivered
4801 Shanghai Calling
4802 My Date with Drew
Name: title, Length: 4803, dtype: object
# 选择数据作为DataFrame
movies_dataset[["title"]]

3. 选择多个 DataFrame 列。

# 选择多个 DataFrame 列 movies_dataset[["title""runtime","vote_average","vote_count"]]   

为避免代码可读性问题,我建议总是定义一个变量来保存列名的列表,并使用列名,而不是在代码中指定多个列名。

columns=["title","runtime","vote_average","vote_count"]movies_dataset[columns]

4.DataFrame的列名按列名选择。

阅读更多:Python 教程

.filter() 方法

这种方法非常方便,可以使用字符串搜索和选择列。这与在SQL中的like %%参数几乎相同。请记住,.filter()方法仅通过检查列名而不是实际数据值来选择列。

.filter()方法支持三个用于选择操作的参数。

.like

.regex

.items

like参数接受一个字符串,并尝试在列名中找到包含此字符串的列名。
# 选择列名类似于“title”的列
movies_dataset.filter(like="title").head(5)

.regex – 更灵活的使用正则表达式来选择列名

# 选择以“t”结尾的列
movies_dataset.filter(regex=t).head()

.items – 将列名作为字符串或列表重复,不会引发KeyError。

按数据类型来选择DataFrame列。

如果您只对某些数据类型感兴趣,那么 .select_dtypes 方法可以对列数据类型进行处理和过滤。

再次说明,.select_dtypes 方法接受多个数据类型(通过list) 或单个数据类型(作为一个String) 作为其 include 或 exclude 参数,并返回一个只包含指定数据类型列的DataFrame。

.include参数包括指定数据类型的列,. exclude将忽略指定数据类型的列。

让我们首先看一下数据类型及其数量

movies_dataset=pd.read_csv("https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv"
movies_dataset.dtypes.value_counts()
object 5
int64 4
float64 3
dtype: int64

a) 从pandas DataFrames中过滤整数数据类型。

movies_dataset select_dtypes(include="int")head(3)

b) 从pandas DataFrames中选择整数和浮点数数据类型。

您可以像下面这样指定多个数据类型。

movies_dataset select_dtypes(include=["int64","float"]).head(3)

c) 如果您只想查看所有数字数据类型,只需指定数字即可

movies_dataset select_dtypes(include=["number"]).head(3)

d). 从pandas DataFrames中排除某些数据类型。

movies_dataset select_dtypes(exclude=["object"]).head(3)

注意 :pandas中没有字符串数据类型,它们被转换为“Object”,因此,如果您遇到异常“TypeError:data type”string“ not understood”,请将string替换为Object。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程