繁体   English   中英

如何在 Pandas DataFrame 中搜索行条目?

[英]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)]

还查看了ilocloc函数,但也许我丢失了一些东西。

谢谢!

DataFrame.eqaxis=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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM