Pandas:基于另一列值查询列值

2024-04-19 03:12:16 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,给定一个Python字符串列表和一个包含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()

Tags: 数据方法字符串intxtdf列表for
1条回答
网友
1楼 · 发布于 2024-04-19 03:12:16

要获取df.X,其中df.Y的值在某个列表中,可以使用^{}

df[df['Y'].isin([os.path.basename(f) for f in filelist])]['X']

要遍历结果,可以使用^{}

for x in df[df['Y'].isin([os.path.basename(f) for f in filelist])]['X'].values:
    print x

或者,根据您想要对结果执行的操作,您可以使用^{}

df[df['Y'].isin([os.path.basename(f) for f in filelist])]['X'].apply(some_function)

相关问题 更多 >