whenever I pass my first function to the other one I get this error,why is this happening and how can I solve it??
def analyze_playlist(*args):
playlist_features_list = ["artist","track_name","track_id","danceability","energy","key","loudness","mode", "speechiness",'acousticness',"instrumentalness","liveness","valence","tempo", "duration_ms"]
playlist_df = pd.DataFrame(columns = playlist_features_list)
playlist_tracks = sp.playlist_tracks(*args)["items"]
for track in playlist_tracks:
playlist_features = {}
playlist_features["artist"] = track["track"]["artists"][0]["name"]
playlist_features["track_name"] = track["track"]["name"]
playlist_features["track_id"] = track["track"]["id"]
audio_features = sp.audio_features(playlist_features["track_id"])[0]
for feature in playlist_features_list[3:]:
playlist_features[feature] = audio_features[feature]
track_df = pd.DataFrame(playlist_features, index = [0])
playlist_df = pd.concat([playlist_df, track_df], ignore_index = True)
return playlist_df
analyze_playlist(a)
def classify_playlist(func):
spotify=pd.read_csv('../OUTPUT/spotify.csv')
spotify.drop(columns=['Unnamed: 0'],inplace=True)
spotify.columns
y = spotify['intervals'].values
X = spotify[['danceability', 'energy',
'loudness', 'speechiness', 'acousticness',
'instrumentalness', 'liveness', 'valence']].values
X_train, X_test, y_train,y_test = train_test_split(X,y, test_size=0.2)
forest = RandomForestClassifier(n_estimators=200)
forest.fit(X_train, y_train)
tx=func[['danceability', 'energy',
'loudness', 'speechiness', 'acousticness',
'instrumentalness', 'liveness', 'valence']].values
testdata= forest.predict(tx)
return testdata
Right now I am calling my second function passing it my second function and I get this error.
classify_playlist(analyze_playlist)
---> 14 tx=func[['danceability', 'energy', 15 'loudness', 'speechiness', 'acousticness', 16 'instrumentalness', 'liveness', 'valence']].values
TypeError: 'function' object is not subscriptable