在Python中基于外部生成的表(即csv文件或数据帧)动态选择数据帧的元素

2024-10-05 17:42:57 发布

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

我试图根据第二个数据帧中的行来识别一个数据帧中的特定行。第二个数据帧中的每一行指定一个唯一的筛选器。筛选条件(要使用的列和值)仅在执行期间已知,并且会有所不同

data = pd.DataFrame({'a':[0,1,2,3],'b':[4,5,6,7],'c':[9,6,4,2]})

flt = pd.DataFrame({'a': [3,None,0],'c':[None,2,5]})

其目的是动态生成一个搜索条件,允许使用向量处理,如

data[data['a']==flt['a'].iloc[0]]

data[data['c']==flt['c'].iloc[1]]

data[(data['a']==flt['a'].iloc[2]) & (data['c']==flt['c'].iloc[2])]

我在考虑一种元编程或模板的形式,它可以动态地生成代码,可能是字符串并使用exec。然而,用Python做事情似乎不是一种好方法? 问题是“真实”应用程序使用非常大的数据帧,尤其是要搜索的数据(百万乘数百),用于搜索的列组合变化很大。1列到12列之间。搜索的灵活性和速度也是至关重要的


Tags: 数据目的none模板dataframedata编程动态