Pandas 中如何获取特定列满足给定条件的所有行的索引
我们可以使用简单的索引操作获得特定列满足给定条件的所有行的索引。我们还可以使用 NumPy 包中的 where()
方法和 DataFrame 对象的 query()
方法找到它们的索引。
简单的索引操作可获取 Pandas 中特定列满足给定条件的所有行的索引
使用简单的索引操作可以完成获取特定列满足给定条件的行的索引的任务。
import pandas as pd
import numpy as np
dates=['April-10', 'April-11', 'April-12', 'April-13','April-14','April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
reqd_Index = df[df['Sales']>=300].index.tolist()
print(reqd_Index)
输出:
[1, 2, 4, 5]
这里,df['Sales']>=300
给出一系列布尔值,如果其 Sales
列的值大于或等于 300,则其元素为 True。
我们可以通过使用 df[df['Sales']>=300].index
来检索销售值大于或等于 300 的行的索引。
最后,tolist()
方法将所有索引转换为列表。
np.where()
方法获取特定列满足给定条件的所有行的索引
np.where()
将条件作为输入,并返回满足给定条件的元素的索引。因此,我们可以使用 np.where()
来获取特定列满足给定条件的所有行的索引。
import pandas as pd
import numpy as np
dates=['April-10', 'April-11', 'April-12', 'April-13','April-14','April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
reqd_Index = list(np.where(df["Sales"] >= 300))
print(reqd_Index)
输出:
[array([1, 2, 4, 5])]
这将输出 Sales
列中的值大于或等于 300
的所有行的索引。
pandas.DataFrame.query()
获取特定列满足给定条件的所有行的索引
pandas.DataFrame.query()
返回由提供的查询表达式产生的 DataFrame。现在,我们可以使用 DataFrame 的 index 属性返回其特定列满足给定条件的所有行的索引。
import pandas as pd
import numpy as np
dates=['April-10', 'April-11', 'April-12', 'April-13','April-14','April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
reqd_index = df.query('Sales == 300').index.tolist()
print(reqd_index)
输出:
[1, 4, 5]
它返回特定列满足给定条件 Sales == 300
的所有行的索引列表。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。