我有多个数据框。
例如
0 dd aa
1 ff qq
2 ff gg
4 ff df
是否可以找到“ gg”,然后返回找到它的列号。在上面的示例中,它将返回1的整数
答案 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
如果可能,某些值可能不匹配,请使用next
和iter
返回第一个匹配值或默认值:
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]
提取第一列名称。
最后,通过在列列表中查找名称来提取列名称的整数位置。