Pandas:如何选择包含特定字符串的列


您可以使用以下方法来选择 pandas DataFrame 中包含特定字符串的列:

方法 1:选择包含特定字符串的列

 df. filter (regex=' string1 ')

方法 2:选择包含多个字符串之一的列

 df. filter (regex=' string1|string2|string3 ')

以下示例展示了如何在实践中通过以下 pandas DataFrame 使用这些方法:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' mavs ': [10, 12, 14, 15, 19, 22, 27],
                   ' cavs ': [18, 22, 19, 14, 14, 11, 20],
                   ' hornets ': [5, 7, 7, 9, 12, 9, 14],
                   ' spurs ': [10, 12, 14, 13, 13, 19, 22],
                   ' net ': [10, 14, 25, 22, 25, 17, 12]})

#view DataFrame
print (df)

   mavs cavs hornets spurs nets
0 10 18 5 10 10
1 12 22 7 12 14
2 14 19 7 14 25
3 15 14 9 13 22
4 19 14 12 13 25
5 22 11 9 19 17
6 27 20 14 22 12

示例 1:选择包含特定字符串的列

以下代码演示如何使用filter()函数仅选择名称中包含字符串“avs”的列:

 #select columns that contain 'avs' in the name
df2 = df. filter (regex=' avs ')

#view DataFrame
print (df2)

   mavs cavs
0 10 18
1 12 22
2 14 19
3 15 14
4 19 14
5 22 11
6 27 20

仅返回名称中带有“avs”的列。

在这种情况下,“mavs”和“cavs”是唯一返回的列。

示例 2:选择包含多个字符串之一的列

以下代码演示如何使用filter()函数仅选择名称中包含“avs”或“ets”的列:

 #select columns that contain 'avs' in the name
df2 = df. filter (regex=' avs|ets ')

#view DataFrame
print (df2)

   mavs cavs hornets nets
0 10 18 5 10
1 12 22 7 14
2 14 19 7 25
3 15 14 9 22
4 19 14 12 25
5 22 11 9 17
6 27 20 14 12

仅返回名称中带有“avs”或“ets”的列。

请注意,竖线( | )是 pandas 中的“ OR ”运算符。

您可以随意链接任意数量的“OR”运算符,以选择包含许多不同字符串之一的列。

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

Pandas:如何将列移动到 DataFrame 前面
Pandas:如何检查列是否包含字符串
Pandas:如何向 DataFrame 添加空列(3 个示例)

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注