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

时间:2019-02-17 23:30:09

标签: python dataframe code-generation

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

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列之间。灵活性和搜索速度也至关重要。

0 个答案:

没有答案