Сравните два столбца в фрейме данных python

#python #dataframe

#python #фрейм данных

Вопрос:

У меня есть 2 файла Excel в качестве входных данных.

 F1
FileName        Name   Gender
4-F_994637.txt  XXX    Not Identified
4-F_994576.txt  XXX    Not Identified
3-F_977039.txt  XXX    Not Identified
4-F_992516.txt  XXX    Not Identified
3-F_980311.txt  XXX    Not Identified
4-F_994638.txt  XXX    Female
4-F_994126.txt  XXX    Female
3-F_677039.txt  XXX    female
4-F_322516.txt  XXX    male
3-F_677311.txt  XXX    male

F2
FileName        Name   Gender
4-F_994637.txt  XXX    Male
4-F_994576.txt  XXX    Male
3-F_977039.txt  XXX    Male
4-F_992516.txt  XXX    Male
3-F_980311.txt  XXX    Male

 

Все, что я хочу, это сначала мне нужно выбрать «Gender = ‘Non Identified'» и сравнить F1 и F2 со столбцом «FileName» . И если есть совпадение, я должен заменить пол в F1 на мужской

Я попробовал приведенный ниже код, но получил ошибку

 import pandas as pd

df1=pd.read_excel('F1.xlsx')
df2=pd.read_excel('F2.xlsx')

pick=df1[df1["Gender"]=='Not Identified']
filecompare=pick["FileName"] == df2["FileName"]

ValueError: Can only compare identically-labeled Series objects
 

Может кто-нибудь помочь, в чем суть этой ошибки.

Спасибо, Мира

Комментарии:

1. Что вы понимаете из этого сообщения об ошибке? Вы выполняли какую-либо отладку?

Ответ №1:

С pandas версии 1.1.1 ваш кодовый блок

 pick=df1[df1["Gender"]=='Not Identified']
filecompare = pick["FileName"] == df2["FileName"]
display(filecompare)
 

ВОЗВРАТ

output_for_question

Вы можете проверить наличие похожих имен файлов с помощью этого isin() метода и установить для них значение «мужской» с .loc помощью .

 cond_male = (df1['Gender']=='Not Identified') amp; (df1['FileName'].isin(df2['FileName']))
df1.loc[cond_male,'Gender']='Male'
 

ВОЗВРАТ

вывод_вопрос