在数据框中精确匹配列名称

时间:2015-04-29 04:56:19

标签: python pandas

我有以下

for col in Features:
     My_Features = pd.merge(My_Features,Drug.ix[:,[col]], left_index = True,right_index=True)

产生以下

My_Features.columns
Out[373]: Index([u'**PCBD1_x**', u'**PCBD1_y**', u'KLK8', u'TNFSF13 /// TNFSF12-', u'RIPK5', u'SVIL'], dtype='object')

虽然它应该完全匹配

的功能
Features
Out[375]: ['PCBD1', 'KLK8', 'TNFSF13 /// TNFSF12-', 'RIPK5', 'SVIL']

如何更改" col"在上面创建数据框时匹配。换句话说,要避免 BOLD 列匹配。这是一个正则表达式问题。

更新

我正在尝试提取"功能"中列出的列。来自" Drug"。

之前
for col in Features:
 My_Features = pd.merge(My_Features,Drug.ix[:,[col]], left_index = True,right_index=True)enter code here

我有以下行来创建My_Features的结构

My_Features =  pd.DataFrame( Drug.ix[:,Features[0]] , index = Drug.index , columns=[Features[0]])

所以整个代码看起来像

My_Features =  pd.DataFrame( Drug.ix[:,Features[0]] , index = Drug.index , columns=[Features[0]])
iterfeatures = iter(Features)
next(iterfeatures)
for col in Features:
    My_Features = pd.merge(My_Features,Drug.ix[:,[col]], left_index = True,right_index=True)

1 个答案:

答案 0 :(得分:0)

您可以使用pandas.DataFrame.filter()。它有一个正则表达式参数[以及一个“喜欢”参数]。 http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.filter.html