首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找Dataframe值并返回列号

查找Dataframe值并返回列号
EN

Stack Overflow用户
提问于 2019-03-05 19:41:20
回答 2查看 1.1K关注 0票数 0

我有多个数据帧。

E.g

代码语言:javascript
复制
0   dd   aa
1   ff   qq
2   ff   gg
4   ff   df

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-05 19:42:36

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

代码语言:javascript
复制
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

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

代码语言:javascript
复制
print (next(iter(np.where(df == 'gg')[1]), 'no match'))
1
print (next(iter(np.where(df == 'aaa')[1]), 'no match'))
no match
票数 2
EN

Stack Overflow用户

发布于 2019-03-05 20:29:48

假设列可以有名称,您可以这样找到包含'gg‘的(第一个)列:

代码语言:javascript
复制
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]提取第一个列名。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55002026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档