如何使用另一个数据帧的索引选择数据帧的行?
先决条件:
- 熊猫
- 随机的
使用 Pandas 模块,可以使用来自另一个数据帧的索引从数据帧中选择行。本文对此进行了详细讨论。建议在jupyter notebook中实现所有代码,以便于实现。
方法:
- 导入模块
- 创建第一个数据框。在下面给出的示例中,choice()、randint() 和 random() 都属于随机模块,用于生成数据帧。
1) choice() – choice() 是Python编程语言中的一个内置函数,它从列表、元组或字符串中返回一个随机项。
Syntax: random.choice(sequence)
Parameters: Sequence is a mandatory parameter that can be a list, tuple, or string.
Returns: The choice() returns a random item.
2) randint()-这个函数用来生成随机数
Syntax : randint(start, end)
Parameters :
(start, end) : Both of them must be integer type values.
Returns :
A random integer in range [start, end] including the end points.
3) random()-用于生成0到1之间的浮点数。
- 使用 random()函数创建另一个数据框并随机选择第一个数据集的行。
- 现在我们将使用 dataframe.loc[]函数使用第二个数据帧的索引选择第一个数据帧的行值。熊猫 DataFrame.loc[] 属性通过标签或给定 DataFrame 中的布尔数组访问一组行和列。
Syntax: DataFrame.loc
Parameter : None
Returns : Scalar, Series, DataFrame
- 显示选定的行
下面给出使用上述概念的实现:
程序:
Python3
# 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])
输出: