Актуальный вопрос (не удалось добавить в заголовок, потому что он слишком длинный): у меня есть названия объектов в списке, где каждый список соответствует соответствующему году. Я хочу создать фрейм данных с каждой строкой, содержащей уникальное имя объекта. Проблема в том, что через несколько лет название объекта может появиться, а в следующем году оно может отсутствовать, а в следующем году оно может появиться снова и так далее. Также есть объекты, которые появляются не намного позже. Я пытался создать фрейм данных, который сопоставляет уникальные имена объектов со строкой (где они впервые появляются), но мне это не удалось.
Ideal:
Headers = ['1999','2000','2001','2002','2003']
file1999 = ['Factory_A']
file2000 = ['Factory_A','Factory_B']
file2001 = ['Factory_B']
file2002 = ['Factory_A','Factory_C']
file2003 = ['Factory_A','Factory_B','Factory_C']
1999 2000 2001 2002 2003
Factory_A Factory_A NA Factory_A Factory_A
NA Factory_B Factory_B NA Factory_B
NA NA NA Factory_C Factory_C
Я думал, что смогу просто объединить списки, используя цикл, но это не принесло результата, который мне нужен.
df = pd.DataFrame({'Factories':['NaN']})
for i, j in zip((files), (Headers)):
new_DF = pd.DataFrame({'Factories':i})
df = df.merge(new_DF, on = ['Factories'],how='right')
# I got this with 'right'
Factories
0 Factory_A
1 Factory_C
2 Factory_B
# I then tried to append a new column
df = pd.DataFrame({'Factories':['NaN']})
for i, j in zip(files, Headers):
new_DF = pd.DataFrame({'Factories':i})
df[j] = new_DF
# But I got this result instead:
Factories 1999 2000 2001 2002 2003
0 NaN Factory_A Factory_A Factory_B Factory_A Factory_A