需要从Pandas DataFrame中选择行吗?
如果是这样,你将看到根据指定条件从Pandas DataFrame 中选择行的完整步骤。
从Pandas DataFrame中选择行的步骤
第 1 步:收集数据
首先,你需要收集数据。以下是收集的有关盒子的数据示例:
Color | Shape | Price |
Green | Rectangle | 10 |
Green | Rectangle | 15 |
Green | Square | 5 |
Blue | Rectangle | 5 |
Blue | Square | 10 |
Red | Square | 15 |
Red | Square | 15 |
Red | Rectangle | 5 |
第 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
最后,以下来源提供了有关索引和选择数据的附加信息。