Я новичок в Python и борюсь с некоторыми базовыми преобразованиями (yikes!)
Я хочу написать код, который откроет книгу Excel с идентификаторами и местоположениями и проведет каждую строку через функцию, которая отображает указанное местоположение в код ( обратите внимание, что я не хочу объединять все сразу, каждый строка должна проходить через функцию индивидуально ):
Желаемые результаты
Пока мне удалось написать следующий код:
import pandas as pd
ids = "IDs.xlsx"
df_IDs = pd.read_excel(ids)
codes = "MAP.xlsx"
df_codes = pd.read_excel(codes)
def prop_id(location):
datapoints = [[location, "Yes"]]
df = pd.DataFrame(datapoints, columns=['Location', 'Is Match'])
merge = pd.merge(df_codes, df, how='left', left_on='Location', right_on='Location')
fltr = merge.dropna()
column = fltr[['Code']]
output = column.values.tolist()
return output
df_IDs['PlaceID'] = df_IDs['Location'].apply(prop_id)
print(df_IDs)
Это выводит следующее:
ID Property Location PlaceID
0 1234 Property A Location 1 [[A], [E], [F]]
1 1235 Property B Location 2 [[B]]
Затем я пытаюсь сопоставить столбец ID с каждым значением списка в столбце PlaceID и повернуть данные по вертикали. Другими словами:
ID Property Location PlaceID
0 1234 Property A Location 1 A
1 1234 Property A Location 1 E
1 1234 Property A Location 1 F
1 1235 Property B Location 2 B
Любая помощь будет принята с благодарностью. Спасибо!