我有一个唯一ID的列表,例如['ABC','DEF','FGR'...等。另外,我有一个数据框(A),其中包含这些ID和其他变量。我的目标是有效检查数据框A的ID列是否与我的唯一ID列表中的任何ID匹配(如果有多行,我可以从具有唯一ID'ABC'的A中获得多行)。
我有一个forloop,它遍历列表中的每个ID,然后使用该索引,如果该索引与A的ID列值匹配,我正在搜索我的数据框A,如果它确实创建了一个包含那些索引的临时数据框匹配的行。
这是我用来查找ID的唯一列表:
ID_list = ['ABC', 'DEF', 'GHI' , 'JKL', ...]
这是数据框A:
id | name | freq
-------------------------
ABC | Khar | 5
ABC | SantaCruz | 3
DEF | Sion | 2
ABC | VT | 1
DEF | newFort | 3
GHI | Bandra | 2
GHI | Worli | 1
JKL | Sanpada | 3
ABC | Joe | 2
DEF | Sally | 1
JKL | Elphiston | 2
GHI | Currey Road | 1
我要在数据框A中搜索的Python代码是:
for i in ID_list:
# temporary dataframe to hold the rows with the same ID
temp = pd.DataFrame([])
print('Currently on ID:', i)
# if ID matches id value in A then put that row in temp
for index in range(0, len(A)):
if A.iloc[index]['id'] == i:
temp = temp.append(A.iloc[index])
print(temp)
然后,我的温度将如下所示:
iteration 1:
id | name | freq
-------------------------
ABC | Khar | 5
ABC | SantaCruz | 3
ABC | Joe | 2
iteration 2:
id | name | freq
-------------------------
DEF | Sion | 2
DEF | newFort | 3
DEF | Sally | 1
以此类推。
您认为这样有效吗?如果没有,我该如何提高效率?
谢谢。