如何使用另一个数据框架的索引来选择一个数据框架的行
使用Pandas模块,可以使用另一个数据框的索引从一个数据框中选择行。这篇文章详细地讨论了这一点。我们建议在jupyter笔记本中实现所有的代码,以方便执行。
步骤:
- Import module
- 创建第一个数据框。在下面的例子中,属于随机模块的choice()、randint()和random()都被用来生成一个数据框。
1) choice() – choice() 是Python编程语言中的一个内置函数,它从一个列表、元组或字符串中返回一个随机项。
语法: random.choice(sequence)
参数:序列是一个强制性参数,可以是一个列表、元组或字符串。
返回: choice()返回一个随机项目。
2) randint()-该函数用于生成随机数
语法 : randint(start, end)
参数:
(start, end) : 它们都必须是整数类型的值。
返回值:一个范围为[start, end]的随机整数,包括端点。
3) random()-用于生成0到1之间的浮点数。
- 使用random()函数创建另一个数据框,并随机选择第一个数据集的行。
- 现在我们将使用dataframe.loc[]函数用第二个数据框的索引来选择第一个数据框的行值。Pandas DataFrame.loc[]属性通过标签或布尔数组访问给定DataFrame中的一组行和列。
语法: DataFrame.loc
参数 : None
返回值: Scalar, Series, DataFrame
- 显示选定的行
下面给出了使用上述概念的实现方法。
代码:
# Importing Required Libraries
import pandas as pd
import random
# Creating data for main dataframe
col1 = [random.randint(1, 9) for i in range(15)]
col2 = [random.random() for i in range(15)]
col3 = [random.choice(['Geeks', 'of', 'Computer', 'Science'])
for i in range(15)]
col4 = [random.randint(1, 9) for i in range(15)]
col5 = [random.randint(1, 9) for i in range(15)]
# Defining Column name for main dataframe
data_generated = {
'value1': col1,
'value2': col2,
'value3': col3,
'value4': col4,
'value5': col5
}
# Creating the dataframe using DataFrame() function
print("First data frame")
dataframe = pd.DataFrame(data_generated)
display(dataframe)
# Creating a second dataframe that will be the subset of main dataframe
print("Second data frame")
dataframe_second = dataframe[['value1', 'value2', 'value3']].sample(n=4)
display(dataframe_second)
# Rows of a dataframe using the indices of another dataframe
print("selecting rows of first dataframe using second dataframe")
display(dataframe.loc[dataframe_second.index])
输出: