gpt4 book ai didi

python-3.x - Python/Pandas 返回找到的字符串的列和行索引

转载 作者:行者123 更新时间:2023-12-04 01:43:54 25 4
gpt4 key购买 nike

我已经搜索过与此相关的先前答案,但这些答案似乎使用了 numpy,因为该数组包含数字。我正在尝试在数据框('Timeframe')中的句子中搜索关键字,其中完整句子是'Timeframe for wave in ____'并希望返回列和行索引。例如:

    df.iloc[34,0] 

返回我正在寻找的字符串,但出于动态原因我避免使用硬代码。当我在数据帧中搜索关键字“Timeframe”时,有没有办法返回 [34,0]

最佳答案

编辑:

查询索引需要containsboolean indexing , 但可能有 3 个值:

df = pd.DataFrame({'A':['Timeframe for wave in ____', 'a', 'c']})
print (df)
A
0 Timeframe for wave in ____
1 a
2 c



def check(val):
a = df.index[df['A'].str.contains(val)]
if a.empty:
return 'not found'
elif len(a) > 1:
return a.tolist()
else:
#only one value - return scalar
return a.item()
print (check('Timeframe'))
0

print (check('a'))
[0, 1]

print (check('rr'))
not found

旧的解决方案:

看来需要就需要numpy.where校验值 Timeframe:

df = pd.DataFrame({'A':list('abcdef'),
'B':[4,5,4,5,5,4],
'C':[7,8,9,4,2,'Timeframe'],
'D':[1,3,5,7,1,0],
'E':[5,3,6,9,2,4],
'F':list('aaabbb')})

print (df)
A B C D E F
0 a 4 7 1 5 a
1 b 5 8 3 3 a
2 c 4 9 5 6 a
3 d 5 4 7 9 b
4 e 5 2 1 2 b
5 f 4 Timeframe 0 4 b


a = np.where(df.values == 'Timeframe')
print (a)
(array([5], dtype=int64), array([2], dtype=int64))

b = [x[0] for x in a]
print (b)
[5, 2]

关于python-3.x - Python/Pandas 返回找到的字符串的列和行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45042005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com