给出一个Python字符串列表和一个Pandas DataFrame,例如列X,Y,Z。我需要在列Y == mylist[index]
的数据框中依次查询列X的值。我试过以下无济于事:
filelist = glob.glob('/somedir/*.txt')
for f in filelist:
f = os.path.basename(f)
df.loc[df['Y'] == f, 'X'].item()
答案 0 :(得分:1)
要获得某个列表中df.X
的值的df.Y
,您可以使用pandas.Series.isin()
:
df[df['Y'].isin([os.path.basename(f) for f in filelist])]['X']
要遍历结果,您可以使用pandas.Series.values
:
for x in df[df['Y'].isin([os.path.basename(f) for f in filelist])]['X'].values:
print x
或者,根据您要对结果执行的操作,您可以使用.apply()
:
df[df['Y'].isin([os.path.basename(f) for f in filelist])]['X'].apply(some_function)