2017-02-22 113 views
0

我想比較兩個.csv文件。第一個有許多屬性被故意分成不同的列。第二個csv將所有這些屬性合併到一個單元中。我想找到一定數量的匹配,並且一旦確認,就從第二個csv中的另一個單元(圖像ID)獲取數據。熊貓匹配使用.extract()

我正在使用熊貓(新的它),到目前爲止認爲提取/ extractall是我想成爲的地方。但在這個基本的測試中,我看不出爲什麼我沒有得到任何比賽。

image_index = pd.Series(['Classic', 'Duffle', 'Bag', 'Leather']) 
image_index.str.extract('(?P<duffle>(?i)Duffle)(?P<bag>(?i)Bag)', expand=False) 

結果:

duffle bag 
0 NaN NaN 
1 NaN NaN 
2 NaN NaN 
3 NaN NaN 

回答

0

您需要的羣體之間的交替|,因爲你只有每個小組模式在一個字符串:

>>> image_index.str.extract('(?P<duffle>(?i)Duffle)|(?P<bag>(?i)Bag)', expand=False) 
    duffle bag 
0  NaN NaN 
1 Duffle NaN 
2  NaN Bag 
3  NaN NaN 
+0

這是爲什麼沒有在給出的例子需要在文檔中?我沒有看到他們的。 http://pandas.pydata.org/pandas-docs/stable/text.html – thaneofcawdor

+0

在文檔中的示例中,字符串具有來自兩個組的匹配,但這不是這種情況。如果你在系列中有「DuffleBag」,那麼你的第一個正則表達式會找到一個匹配。 –