Я пытаюсь преобразовать 4 столбца из моего DataFrame в уникальный столбец.
У меня есть следующий DataFrame:
doggo floofer pupper puppo
0 None None None None
1 None None None None
2 None None None None
3 None None None None
4 None None None None
5 None None None None
6 None None None None
7 None None None None
8 None None None None
9 doggo None None None
10 None None None None
11 None None None None
12 None None None puppo
13 None None None None
14 None None None puppo
Мне нужен уникальный столбец, заполненный значениями None',' doggo ',' floofer ',' pupper ',' puppo '.
Я пытался использовать функцию Melt безуспешно.
мой фактический код:
melt = pd.melt(melt, id_vars=['doggo', 'floofer', 'pupper', 'puppo'], var_name='classification')
Любая помощь?
РЕДАКТИРОВАТЬ
Ниже полное решение (комментарии на португальском языке):
#criar uma cópia do DataFrame para não comprometer o DataFrame original
df = twitter_archive.copy()
#Apagar os valores None
df = df.replace('None', '')
#criar e preencher a coluna classification com as informações das colunas doggo, floofer, pupper e puppo
df['classification'] = (df['doggo'].fillna('') + df['floofer'].fillna('') + df['pupper'].fillna('') + df['puppo'].fillna('')).replace('', np.nan)
#Dropar todas as colunas e deixar somente a classification
df = df.drop(columns=['in_reply_to_status_id', 'in_reply_to_user_id', 'timestamp', 'source', 'text', 'retweeted_status_id', 'retweeted_status_user_id', 'retweeted_status_timestamp', 'expanded_urls', 'rating_numerator', 'rating_denominator', 'name', 'doggo','floofer', 'pupper', 'puppo'])
#Acrescentar a coluna classification no DataFrame twitter_archive e remover as colunas doggo, floofer, pupper e puppo
twitter_archive = pd.merge(twitter_archive, df, on= 'tweet_id')
twitter_archive = twitter_archive.drop(columns=['doggo', 'floofer', 'pupper', 'puppo'])