パンダは:タプルのリストにデータフレームの2つの列を比較することによって、行を取得します

アブラ:

A、B、C、D:私は4つの列とパンダデータフレームを持っていると言います。

my_df = pd.DataFrame({'A': [0,1,4,9], 'B': [1,7,5,7],'C':[1,1,1,1],'D':[2,2,2,2]})

私はまた、タプルのリストを持っています:

my_tuples = [(0,1),(4,5),(9,9)]

私は、の値がデータフレームの行だけ残しておきたい(my_df['A'],my_df['B'])、ISはmy_tuples内のタプルの1に相当します。

この例では、行#0であると#2行であろう。

これを行うには良いの方法はありますか?私は任意の助けをいただければと思います。

エズレル:

使用DataFrame.mergeしてDataFrameタプルによって作成されたが、何もありませんon両方のすべての列のデフォルトinterectonのパラメータDataFramesここでは、AB

df = my_df.merge(pd.DataFrame(my_tuples, columns=['A','B']))
print (df)
   A  B  C  D
0  0  1  1  2
1  4  5  1  2

または:

df = my_df[my_df.set_index(['A','B']).index.isin(my_tuples)]
print (df)
   A  B  C  D
0  0  1  1  2
2  4  5  1  2

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=298437&siteId=1