我有一个包含3列的数据框,如下所示:
https://codesandbox.io/s/mobile-store-325x9
我想在instrument_token列中搜索12295682,并提取相关的交易代码UBL20JANFUT。
我该怎么做?
预先感谢
答案 0 :(得分:3)
您可以将boolean indexing
与DataFrame.loc
一起使用,以按条件和按列名进行过滤:
s = df.loc[df['instrument_token'].eq(12295682), 'tradingsymbol']
#alternative
s = df.loc[df['instrument_token'] == 12295682, 'tradingsymbol']
然后获得Series
的第一个值:
a = s.iat[0]
a = s.iloc[0]
a = s.tolist()[0]
a = s.to_array()[0]
#general solution if not match condition and select first value failed
a = next(iter(s), 'no match')
另一个想法是按instrument_token
列使用DataFrame.set_index
索引:
df = df.set_index('instrument_token')
然后点击DataFrame.loc
或
DataFrame.at
:
a = df.loc[12295682, 'tradingsymbol']
a = df.at[12295682, 'tradingsymbol']
答案 1 :(得分:2)
尝试
df[df['instrument_token'] == 12295682]['tradingsymbol']
答案 2 :(得分:1)
您可以使用:
list(df.loc[df['instrument_token'] == '12295682', 'tradingsymbol'])[0]
# UBL20JANFUT
答案 3 :(得分:-1)
您可以尝试:
df2=df['Trading_symbol'][df['instrument_token']==12295682]