1
請看下面的例子對付列表類似的數據:如何在大熊貓數據幀列
我有電子郵件的表,每一個電子郵件ID,和兩個標籤欄,通過不同的代碼路徑產生的,含與這些電子郵件相關的標籤列表。
df = pd.DataFrame({
'id': [1,2,3,4],
'labels1': [np.array(['red']), np.array(['blue', 'green']), np.array(['blue']), np.nan],
'labels2': [np.nan, np.nan, np.array(['yellow', 'purple']), np.array(['magenta'])]
})
df
id labels1 labels2
0 1 [red] NaN
1 2 [blue, green] NaN
2 3 [blue] [yellow, purple]
3 4 NaN [magenta]
所以,我需要一種方法來產生以下數據框:
df_merge
id labels
0 1 [red]
1 2 [blue, green]
2 3 [blue, yellow, purple]
3 4 [magenta]
但使用lambda函數,我可能會與標列數據做拋出一個ValueError異常:
df.apply(lambda x: np.unique(np.append(x['labels1'], x['labels2'])), axis=1)
ValueError: Shape of passed values is (4, 2), indices imply (4, 4)
我在上面嘗試了很多不同的變化,都無濟於事。我想知道像這樣的像數組一樣的列數據是否是一種熊貓反模式,如果是這樣,有什麼更好的方法?