2016-11-06 48 views
1

過濾條件加入。如果我有兩個dataframes這樣的:在做的熊貓

df1: 
    | a | b | 
0 | 0 | 0 | 
1 | 0 | 1 | 
2 | 1 | 1 | 


df2: 
    | c | d | 
0 | 0 | 1 | 
1 | 1 | 1 | 
2 | 2 | 1 | 

我怎麼會從df2其中df1[df2['c']]['b'] != 0選擇行。換句話說,來自df2的行在column c中的值是用於檢查df1 column b中的值的索引不等於0.

因此有一種方法可以查看它。我選擇所有列從df2其中column c是一個外鍵df1,我不希望自己在column b值等於0。

+0

df ['c']'中的值是否總是等於索引? – Jakub

+0

是的,它總是一個索引的外鍵 – Rob

回答

1

我想這應該做的伎倆。讓我知道你是否需要別的東西。

df1['index1'] = df1.index 
df = pandas.merge(df1, df2, how='left', left_on=['index1'], right_on=['c']) 
df = df[df.b != 0] 
+0

我也想過這個,但它只會在'df2 ['c']'中的每個項目等於'df2'中的項目索引時才起作用。 – Jakub

+0

也可以使用'left_index = True'來代替創建左邊的索引 – Rob