df100=a[['genres','imdb_score']]
df100
genres imdb_score
0 Action|Adventure|Fantasy|Sci-Fi 7.9
1 Action|Adventure|Fantasy 7.1
2 Action|Adventure|Thriller 6.8
3 Action|Thriller 8.5
4 Documentary 7.1
... ... ...
5038 Comedy|Drama 7.7
5039 Crime|Drama|Mystery|Thriller 7.5
5040 Drama|Horror|Thriller 6.3
5041 Comedy|Drama|Romance 6.3
5042 Documentary 6.6
def tuples(p):
t= [(p[0], p[1]) for p[0], p[1] in zip(df100.genres, df100.imdb_score) for p[0] in p[0].split('|')]
return t
tuples(df100.loc[0,['genres','imdb_score']])
Итак, я создал фрейм данных выше с жанрами и оценкой imdb в качестве столбцов. Затем я создал функцию tuples(), которая берет столбец жанра, разделяет каждый уникальный жанр, а затем добавляет к нему imdb_score (как показано ниже). Затем я применил эту функцию, показанную, tuples(df100.loc[0,[ 'genres','imdb_score']]), в надежде получить то, что показано ниже, 2d-кортежи только первой строки фрейма данных. Однако в итоге я получаю один список для всех строк в кадре данных, а не только для первой строки. Может ли кто-нибудь помочь в том, как я могу изменить функцию, чтобы использовать ее в первой строке, а затем применить ко всему фрейму данных отдельно.
[('Action',7.9),('Adventure',7.9),('Fantasy',7.9),('Sci-Fi',7.9)]