[英]How to search for a row entry in a pandas DataFrame?
您知道如何在 Pandas DataFrame 中搜索行数据条目吗? 理想情况下,在数据框中搜索部分行条目。
就像我有一个行条目一样:
row_entry = ['ven', 'lar', 'cin', 'por']
还有一个数据框rows_df:
rows_df =
value1 value2 value3 value4 value5
14 foo fir tar har 0.110000
15 bar der ars go 0.510000
16 gal der ben den 0.310000
17 ven lar cin por 0.140000
18 go bun por fran 0.560000
第 17 行将被选中。 这不使用一系列 if 子句。
result =
value1 value2 value3 value4 value5
17 ven lar cin por 0.140000
我尝试过的(并且有效)是:
rows_df[(rows_df['value1'] == 'ven')
& (rows_df['value2'] == 'lar')
& (rows_df['value3'] == 'cin')
& (rows_df['value4'] == 'por')]
理想情况下,我不需要指定哪些是列名,也不需要指定值的顺序。 我正在考虑类似.isin()
子句的内容,但对每一行而不是列进行处理。
就像(这不起作用):
df.loc[df.isin(some_values, axis=1)]
还查看了iloc
和loc
函数,但也许我丢失了一些东西。
谢谢!
将DataFrame.eq
与axis=1
:
print (df[df.iloc[:, :4].eq(row_entry, 1).all(1)])
value1 value2 value3 value4 value5
17 ven lar cin por 0.14
import numpy as np
df[np.isin(df, ['ven', 'lar', 'cin', 'por']).all(axis = 1)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.