如何从Pandas DataFrame中选择行?

2021年9月19日23:21:28 发表评论 995 次浏览

需要从Pandas DataFrame中选择行吗?

如果是这样,你将看到根据指定条件从Pandas DataFrame 中选择行的完整步骤。

从Pandas DataFrame中选择行的步骤

第 1 步:收集数据

首先,你需要收集数据。以下是收集的有关盒子的数据示例

ColorShapePrice
GreenRectangle10
GreenRectangle15
GreenSquare5
BlueRectangle5
BlueSquare10
RedSquare15
RedSquare15
RedRectangle5

第 2 步:创建数据帧

准备好数据后,你需要创建一个 DataFrame以在 Python 中捕获该数据。

对于我们的示例,你可以使用以下代码创建一个 DataFrame:

import pandas as pd

boxes = {'Color': ['Green','Green','Green','Blue','Blue','Red','Red','Red'],
         'Shape': ['Rectangle','Rectangle','Square','Rectangle','Square','Square','Square','Rectangle'],
         'Price': [10,15,5,5,10,15,15,5]
        }

df = pd.DataFrame(boxes, columns= ['Color','Shape','Price'])
print (df)

用Python运行代码,你会看到这个 DataFrame:

   Color      Shape  Price
0  Green  Rectangle     10
1  Green  Rectangle     15
2  Green     Square      5
3   Blue  Rectangle      5
4   Blue     Square     10
5    Red     Square     15
6    Red     Square     15
7    Red  Rectangle      5

第 3 步:从Pandas DataFrame中选择行

你可以使用以下逻辑根据指定条件从Pandas DataFrame中选择行:

df.loc[df[‘column name’] condition]

例如,如果要获取颜色为 green的行,则需要应用:

df.loc[df[‘Color’] == ‘Green’]

其中:

  • 颜色color是列名
  • 绿色green是条件

这是我们示例的完整Pandas DataFrame中选择行示例代码

import pandas as pd

boxes = {'Color': ['Green','Green','Green','Blue','Blue','Red','Red','Red'],
         'Shape': ['Rectangle','Rectangle','Square','Rectangle','Square','Square','Square','Rectangle'],
         'Price': [10,15,5,5,10,15,15,5]
        }

df = pd.DataFrame(boxes, columns= ['Color','Shape','Price'])

select_color = df.loc[df['Color'] == 'Green']
print (select_color)

运行代码后,你将获得颜色为绿色的行:

   Color      Shape  Price
0  Green  Rectangle     10
1  Green  Rectangle     15
2  Green     Square      5

从Pandas DataFrame中选择行的其他示例

现在让我们查看其他示例,以更好地了解从 Pandas DataFrame 中选择行的过程。

示例 1:选择价格等于或大于 10 的行

要获取价格等于或大于 10 的所有行,你需要应用以下条件:

df.loc[df[‘Price’] >= 10]

这是完整的Pandas DataFrame中选择行示例代码

import pandas as pd

boxes = {'Color': ['Green','Green','Green','Blue','Blue','Red','Red','Red'],
         'Shape': ['Rectangle','Rectangle','Square','Rectangle','Square','Square','Square','Rectangle'],
         'Price': [10,15,5,5,10,15,15,5]
        }

df = pd.DataFrame(boxes, columns= ['Color','Shape','Price'])

select_price = df.loc[df['Price'] >= 10]
print (select_price)

运行代码,你将获得价格等于或大于 10 的所有行:

   Color      Shape  Price
0  Green  Rectangle     10
1  Green  Rectangle     15
4   Blue     Square     10
5    Red     Square     15
6    Red     Square     15

示例 2:选择颜色为绿色且形状为矩形的行

现在的目标是根据两个条件选择行 :

  • 颜色为绿色;
  • 形状是长方形

然后你可以使用&符号来应用多个条件。在我们的示例中,代码如下所示:

df.loc[(df[‘Color’] == ‘Green’) & (df[‘Shape’] == ‘Rectangle’)]

Pandas DataFrame如何选择行?把所有东西放在一起代码如下:

import pandas as pd

boxes = {'Color': ['Green','Green','Green','Blue','Blue','Red','Red','Red'],
         'Shape': ['Rectangle','Rectangle','Square','Rectangle','Square','Square','Square','Rectangle'],
         'Price': [10,15,5,5,10,15,15,5]
        }

df = pd.DataFrame(boxes, columns= ['Color','Shape','Price'])

color_and_shape = df.loc[(df['Color'] == 'Green') & (df['Shape'] == 'Rectangle')]
print (color_and_shape)

运行代码,你将获得带有绿色矩形形状的行:

   Color      Shape  Price
0  Green  Rectangle     10
1  Green  Rectangle     15

示例 3:选择颜色为绿色或形状为矩形的行

你还可以根据一个另一个条件选择行。例如,你可以选择颜色为绿色 形状为矩形的行。

要实现此目标,你可以使用 | 符号如下:

df.loc[(df[‘Color’] == ‘Green’) | (df[‘Shape’] == ‘Rectangle’)]

Pandas DataFrame如何选择行?这是完整的 Python 代码:

import pandas as pd

boxes = {'Color': ['Green','Green','Green','Blue','Blue','Red','Red','Red'],
         'Shape': ['Rectangle','Rectangle','Square','Rectangle','Square','Square','Square','Rectangle'],
         'Price': [10,15,5,5,10,15,15,5]
        }

df = pd.DataFrame(boxes, columns= ['Color','Shape','Price'])

color_or_shape = df.loc[(df['Color'] == 'Green') | (df['Shape'] == 'Rectangle')]
print (color_or_shape)

这是结果,其中颜色为绿色或形状为矩形:

   Color      Shape  Price
0  Green  Rectangle     10
1  Green  Rectangle     15
2  Green     Square      5
3   Blue  Rectangle      5
7    Red  Rectangle      5

示例 4:选择价格不等于 15 的行

从Pandas DataFrame中选择行:你可以使用符号组合!= 来选择价格  等于15 的行:

df.loc[df[‘Price’] != 15]

Pandas DataFrame中选择行示例代码如下:

import pandas as pd

boxes = {'Color': ['Green','Green','Green','Blue','Blue','Red','Red','Red'],
         'Shape': ['Rectangle','Rectangle','Square','Rectangle','Square','Square','Square','Rectangle'],
         'Price': [10,15,5,5,10,15,15,5]
        }

df = pd.DataFrame(boxes, columns= ['Color','Shape','Price'])

not_eqaul_to = df.loc[df['Price'] != 15]
print (not_eqaul_to)

运行代码后,你将获得价格不等于 15 的所有行:

   Color      Shape  Price
0  Green  Rectangle     10
2  Green     Square      5
3   Blue  Rectangle      5
4   Blue     Square     10
7    Red  Rectangle      5

最后,以下来源提供了有关索引和选择数据的附加信息。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: