У меня есть dataframe A['name', 'frequency']
и список B of 'name' Оба довольно длинные. B меньше, чем я получаю ежедневно. Я должен проверить, есть ли элемент B, который является «именем», в DataFrame. A['name']
, если он есть, мне нужно обновлять частоту этого «имени» в кадре данных каждый раз, когда он появляется в B, и если у B есть какой-то новый элемент, я должен добавить это как новую строку в DataFrame A с частотой 1. У меня есть сделать это в python 2.7. Спасибо А мой mac_list как этотСравнение списка и получения индексов в python
mac_list.iloc[0:6]
Out[59]:
mac_address frequency
0 20c9d0892feb 2
1 28e34789c4c2 1
2 3480b3d51d5f 1
3 4480ebb4e28c 1
4 4c60de5dad72 1
5 4ca56dab4550 1
и B мой new_mac_list как этот
['20c9d0892feb' '3480b3d51d5f' '20c9d0892feb' '249cji39fj4g']
Я хочу выход для mac_list как
mac_address frequency
0 20c9d0892feb 4
1 28e34789c4c2 1
2 3480b3d51d5f 2
3 4480ebb4e28c 1
4 4c60de5dad72 1
5 4ca56dab4550 1
6 249cji39fj4g 1
Я попробовал этот
b = mac_list['mac_address'].isin(new_mac_list)
b=list(b)
for i in range(len(b)):
if b[i]==True:
mac_list['frequency'].iloc[i]+=1
обновить частоту, но проблема частота увеличивается на единицу, даже если это кажется более чем 1 в new_mac_list
И я использовал это, чтобы вставить новый элемент
c = new_mac_list.isin(mac_list['mac_address'])
c=list(c)
for i in range(len(c)):
if c[i]==False:
mac_list.append(new_mac_list[i],1)
Но это очень неэффективный способ я думаю это можно сделать только путем сравнения.
Я попытался это б = mac_list [ 'mac_address'].ISIN (new_mac_list) Ь = лист (б) для я в диапазоне (LEN (б)): , если б [я] == Правда:. mac_list [ 'частота'] iloc [I] + = 1 обновить частоту, но проблема частота увеличивается на единицу, даже если это кажется более чем 1 в new_mac_list И я использовал это, чтобы вставить новый элемент с = new_mac_list.isin (mac_list [ 'mac_address ']) c = список (c) для i в диапазоне (len (c)): , если c [i] == False: mac_list.append (new_mac_list [i], 1) Но это очень неэффективный способ, я думаю, это можно сделать, сравнивая только один раз –
. Пожалуйста, поставьте его на свой вопрос и, пожалуйста, отредактируйте его. На данный момент это нечитаемо. – pacholik
Готово. Посмотрите его один раз и руководствуйтесь соответствующим образом. –