Я пытаюсь получить уникальные значения из имени столбца для каждого отдельного значения в столбце «пол».Получите уникальные значения из столбца, используя Python
Вот пример данные: образца input_file_data:
index,name,gender,alive
1,Adam,Male,Y
2,Bella,Female,N
3,Marc,Male,Y
1,Adam,Male,N
я мог бы получить его, когда я даю значение, соответствующее «полу», как, например, дал «Мужчина» в коде ниже:
filtered_data = filter(lambda person: person["gender"] == "Male", input_file_data)
reader = (dict((k, v.strip()) for k, v in row.items() if v) for row in filtered_data)
countt = [rec[gender] for rec in reader]
final1 = input_file_name + ".txt", "gender", "Male"
output1 = str(final1).replace("(", "").replace(")", "").replace("'","").replace(", [{", " -- [").replace("}", "")
final2 = set(re.findall(r"name': '(.*?)'", str(filtered_data)))
final_count = len(final2)
output = str(final_count) + " occurrences", str(final2)
output2 = output1, str(output)
output_final = str(output2).replace('\\', "").replace('"',"").replace(']"', "]").replace("set", "").replace("(", "").replace(")", "").replace("'","").replace(", [{", " -- [").replace("}", "")
output_final = output_final + "\n"
выходной ток:
input_file_name.txt, gender, Male, 2 occurrences, [Adam,Marc]
Ожидаемый результат:
input_file_name.txt, gender, Male, 2 occurrences, [Adam,Marc], Female, 1 occurrences [Bella]
, который должен отображать все уникальные вхождения имен для каждого отдельного гендерного значения (без жесткого кодирования). Также я не хочу использовать Панды. Любая помощь высоко ценится.
PS- У меня есть несколько файлов, и не все файлы имеют одинаковые столбцы. Поэтому я не могу их жестко закодировать. Кроме того, все файлы имеют столбец «name», но не все файлы имеют столбец «gender». И этот скрипт должен работать для любого другого столбца, такого как «индекс» или «живой», или что-то еще, но не только гендер.
Почему вы не хотите использовать панды? он предназначен именно для такого рода вещей. у него есть немного кривая обучения, но он стоит учиться. – acushner
@acushner Есть еще несколько человек, которые будут запускать этот скрипт. Они еще более новы для Python, чем я, и установка пакетов сама по себе является новой для них. Поэтому я предпочитаю придерживаться пакетов, установленных по умолчанию, если это имеет смысл. – amy
, что имеет смысл. но делать то, что вы хотите в пандах, это в основном: 'df = pd.read_csv (csvfile); print df [df.gender == 'Male']; print df [df.gender == 'Female'] '. что кажется более простым. но в любом случае работает. – acushner