查找数据框值并返回列号

时间:2019-03-05 11:41:20

标签: python pandas dataframe

我有多个数据框。

例如

0   dd   aa
1   ff   qq
2   ff   gg
4   ff   df

是否可以找到“ gg”,然后返回找到它的列号。在上面的示例中,它将返回1的整数

2 个答案:

答案 0 :(得分:2)

将值与numpy.where进行比较,选择第二个元组,如果需要第一个元组,则通过索引选择:

print (np.where(df == 'gg'))
(array([1], dtype=int64), array([1], dtype=int64))

print (np.where(df == 'gg')[1])
[1]

a = np.where(df == 'gg')[1][0]
print (a)
1

如果可能,某些值可能不匹配,请使用nextiter返回第一个匹配值或默认值:

print (next(iter(np.where(df == 'gg')[1]), 'no match'))
1
print (next(iter(np.where(df == 'aaa')[1]), 'no match'))
no match

答案 1 :(得分:1)

假设这些列可以有名称,您可以通过以下方式找到包含“ gg”的(第一)列:

found = df.isin(['gg']).any()
column_name = found[found].index.values[0]
integer_index = df.columns.get_loc(column_name)

这会发现df.isin(['gg']).any()在DataFrame中找到“ gg”并列出了包含的所有列。

然后使用found[found].index.values[0]提取第一列名称。

最后,通过在列列表中查找名称来提取列名称的整数位置。