У меня есть несколько (больших) CSV-файлов, пусть они будут 1.csv
и 2.csv
. Оба имеют одинаковый столбец уникального идентификатора. Например, с идентификатором name
:
1.csv 2.csv
name,age,height name,gender
john,34,176 john,male
mary,19,183 kim,female
kim,27,157
из этих CSV-файлов я создаю два кадра данных df1
и df2
.
Цель состоит в том, чтобы объединить некоторые данные (не все столбцы). Условие состоит в том, что человек существует в обоих CSV-файлах:
result
name,age,gender
john,34,male
kim,27,female
Для этого я сделал следующее:
names = df1['name'].tolist()
result_rows = []
for name_iter in names :
age_df = df1[df1['name'] == name_iter ][['age']]
gender_df = df2[df2['name'] == name_iter ][['gender']]
if gender_df.empty:
continue
age = age_df.values[0][0]
gender = gender_df.values[0][0]
row = [name, age, gender]
result_rows.append(row)
После этого у меня есть список списков (result_rows), которые я записываю в файл csv со встроенным модулем python.
Я думаю, что код трудно читать / понимать. Есть ли более простое решение, то есть, чтобы не помещать данные из фреймов данных в структуру списка для этой задачи?