Объединить несколько элементов списка и добавить его в одну строку в pandas?

#python #pandas #sklearn-pandas

#python #pandas #sklearn-pandas

Вопрос:

Я читаю CSV-файл с идентификатором исполнителя, и мне нужно получить данные о жанре исполнителя из Spotify API. Но проблема в том, что в Spotify есть несколько жанров для одного исполнителя (в формате JSON), и я хочу сохранить все это в одной строке (в pandas), используя разделитель-запятую.

например. хип-хоп, поп-рэп, грязный южный рэп.

Как я могу это сделать?

Вот мой код:

 TOKEN = "BQCuNvMU0Gr_"
url1 = r"https://api.spotify.com/v1/artists/"
headers = {'Authorization': "Bearer {}".format(TOKEN)}

df = pd.read_csv('top_artists.csv',names=["Artist_URI","Artist_Name"])

#iterate over each artist 
for row_ID in df['ARTIST_ID'].iteritems():
 url = url1 row_ID
 r = requests.get(url, headers=headers) #each artist has a different URL
 json_data = r.json() 

 #get artist genre(s) and append to genre column
 for genre_data in json_data['genres']:

    df['genre'] = genre_1   genre_2   genre_3 ...
  

Вот как выглядят данные

Комментарии:

1. Вы можете просто сделать .join() на json_data['genres']

2. Можете ли вы предоставить json_data ?

3. {‘external_urls’: {‘spotify’: ‘ open.spotify.com/artist/1G9G7WwrXka3Z1r7aIDjI7 ‘}, ‘подписчики’: {‘href’: Нет, ‘всего’: 1053458}, ‘жанры’: [‘atl hip hop’, ‘dirty south rap’, ‘хип-хоп’, ‘pop rap’, ‘рэп’, ‘южный хип-хоп’],’href’: ‘ api.spotify.com/v1/artists/1G9G7WwrXka3Z1r7aIDjI7

Ответ №1:

 TOKEN = "BQCuNvMU0Gr_"
url1 = r"https://api.spotify.com/v1/artists/"
headers = {'Authorization': "Bearer {}".format(TOKEN)}

df = pd.read_csv('top_artists.csv',names=["Artist_URI","Artist_Name"])

#iterate over each artist 
for row_ID in df['ARTIST_ID'].iteritems():
 url = url1 row_ID
 r = requests.get(url, headers=headers) #each artist has a different URL
 json_data = r.json() 

 #get artist genre(s) and append to genre column
 #No need of For Loop here
 genres_list = json_data['genres']
 df['genre'] = "".join(a)