それは、他のデータフレームの列内の任意の他の値と一致する列内の行番号を見つけます。

vasili111:

私はコードをもっている:

import pandas as pd
import numpy as np

arm_1_and_m1_df = pd.DataFrame({ 'record_id': [1, 4, 3, np.nan],
                   'two': [1, 2, np.nan , 4]
                 })

redcap_final_arm1_data = pd.DataFrame({ 'record_id': [1, 2, 3, 4, 5, 6, 7, 8, 9, np.nan],
                   'two': [1, 2, 3, 4, 5, 6, 7, 8, 9, np.nan]
                 })

ahk_ids_new=[]
for items in arm_1_and_m1_df['record_id'].iteritems():     # https://www.geeksforgeeks.org/python-pandas-series-iteritems/
    ahk_ids_new.append(np.where(redcap_final_arm1_data['record_id'] == items))    # https://stackoverflow.com/questions/48519062/rs-which-and-which-min-equivalent-in-python

上と後のコードを実行した後ahk_ids_newの内容ahk_ids_newです。

[(array([], dtype=int64),),
 (array([], dtype=int64),),
 (array([], dtype=int64),),
 (array([], dtype=int64),)]

値はredcap_final_arm1_data['record_id']ユニークです。

質問:私は、すべての行番号(インデックス)を取得したいのredcap_final_arm1_data['record_id']ではahk_ids_new どこredcap_final_arm1_data['record_id']にあるすべての値と同じ値を持っていますarm_1_and_m1_df['record_id']どうやってするか?

の予想出力(コンテンツ)ahk_ids_new

Out[57]: [0, 3, 2, 9]

私は私のコードからのデータフレームに必要なものを行うには良い方法がある場合は代わりに私のコードを固定するあなたのよりよいバリアントを投稿してください。

アンディ・L.:

試してみてくださいisinとインデックスにスライスします

a_index = (redcap_final_arm1_data.index[redcap_final_arm1_data.record_id
                                           .isin(arm_1_and_m1_df.record_id)].tolist())

Out[1355]: [0, 2, 3, 9]

おすすめ

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