Как сравнить строки в списке, используя Python? - PullRequest
0 голосов
/ 14 июня 2019

Это мой фрейм данных:

CommitId    RefactoringType Detail
0   d38f7b334856ed4007fb3ec0f8a5f7499ee2f2b8    Pull Up Attribute   blokusgame.mi.android.hazi.blokus.GameLogic.Pl...
1   d38f7b334856ed4007fb3ec0f8a5f7499ee2f2b8    Pull Up Attribute   blokusgame.mi.android.hazi.blokus.GameLogic.Pl...
2   d38f7b334856ed4007fb3ec0f8a5f7499ee2f2b8    Pull Up Attribute   blokusgame.mi.android.hazi.blokus.GameLogic.Pl...
3   4bb968a47ce00279d6051df95bd782650700179e    Extract Method  blokusgame.mi.android.hazi.blokus.GameLogic.Pl...
4   c3d7ec38417ecff03d1cd3be0163e6ce07578eb3    Extract Method  blokusgame.mi.android.hazi.blokus.GameLogic.Pl...
5   00568c9886e739d6b5dd61b4a4326d598552fb6f    Extract Method  blokusgame.mi.android.hazi.blokus.GameLogic.Block
6   00568c9886e739d6b5dd61b4a4326d598552fb6f    Extract Method  blokusgame.mi.android.hazi.blokus.GameLogic.Block
7   00568c9886e739d6b5dd61b4a4326d598552fb6f    Extract Method  blokusgame.mi.android.hazi.blokus.GameLogic.Block
8   00568c9886e739d6b5dd61b4a4326d598552fb6f    Extract Method  blokusgame.mi.android.hazi.blokus.GameLogic.Block

Я перечитал столбец CommitId и поместил его в список. Теперь мне нужно сопоставить значения CommitId, если они равны, я извлекаю все строки и помещаюэто в другой фрейм данных, так что это вывод, который мне нужен:

dataframe1:


0   d38f7b334856ed4007fb3ec0f8a5f7499ee2f2b8    Pull Up Attribute   blokusgame.mi.android.hazi.blokus.GameLogic.Pl...
1   d38f7b334856ed4007fb3ec0f8a5f7499ee2f2b8    Pull Up Attribute   blokusgame.mi.android.hazi.blokus.GameLogic.Pl...
2   d38f7b334856ed4007fb3ec0f8a5f7499ee2f2b8    Pull Up Attribute   blokusgame.mi.android.hazi.blokus.GameLogic.Pl..

dataframe2:


3   4bb968a47ce00279d6051df95bd782650700179e    Extract Method  blokusgame.mi.android.hazi.blokus.GameLogic.Pl...

dataframe3:

4   c3d7ec38417ecff03d1cd3be0163e6ce07578eb3    Extract Method  blokusgame.mi.android.hazi.blokus.GameLogic.Pl...

dataframe4:

5   00568c9886e739d6b5dd61b4a4326d598552fb6f    Extract Method  blokusgame.mi.android.hazi.blokus.GameLogic.Block
6   00568c9886e739d6b5dd61b4a4326d598552fb6f    Extract Method  blokusgame.mi.android.hazi.blokus.GameLogic.Block
7   00568c9886e739d6b5dd61b4a4326d598552fb6f    Extract Method  blokusgame.mi.android.hazi.blokus.GameLogic.Block
8   00568c9886e739d6b5dd61b4a4326d598552fb6f    Extract Method  blokusgame.mi.android.hazi.blokus.GameLogic.Block

это мой код:

list=[]
for elm in df['CommitId']:
   list.append(elm)
   print(list)

length = len(list) 
for i in range(length):
    if()

проблема в том, если () я не нашел способ сравнитьЗафиксируйте и извлеките все строки. Когда я пытаюсь сравнить list [i] и list [i + 1], это не работает

1 Ответ

0 голосов
/ 14 июня 2019

Это моё решение. Вы можете создать итерируемый объект DataFrameGroupBy с помощью этой команды:

group = your_dataframe.groupby (['CommitId'])

, который группирует равные значения в столбце CommitId, и затем вы можете создать несколько кадров данных в цикле for с помощью команды exec:

for index,values in enumerate(group):
    exec(f'dataframe_{index+1} = pd.DataFrame(values[1])')

Я использовал enumerate для одновременного получения значений и значений из объекта итератора groupby и index+1 для запуска из переменной dataframe_1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...