我不確定為什么'set'在以下示例中沒有獲得唯一值:
df6 = pd.DataFrame({
'Name': ['Sara', 'John'],
'one': ['UK', 'UK'],
'two': ['IN', 'SA'],
'three': ['IN', 'IN'],
'four': ['IN', 'US']
})
df6
給出:
Name one two three four
0 Sara UK IN IN IN
1 John UK SA IN US
我在串列中連接(一到四)列:
df6['Concat'] = df6[['one','two','three','four']].apply(lambda x: [', '.join(x[x.notnull()])], axis = 1)
給出:
Name one two three four Concat
0 Sara UK IN IN IN [UK, IN, IN, IN]
1 John UK SA IN US [UK, SA, IN, US]
現在我想僅在Concat每個名稱的列中獲取唯一值:
我嘗試了以下方法:
df6.Concat.apply(set)
但結果與原始串列相同!
0 {UK, IN, IN, IN}
1 {UK, SA, IN, US}
Name: Concat, dtype: object
為什么'set'在這種情況下不起作用?
我不希望唯一串列排序,但只是為了增強我的學習,我怎樣才能得到排序的唯一值?
uj5u.com熱心網友回復:
您的Concat專欄由字串串列組成。它不是一個串列。當您申請set()該串列時,您會得到一組一個字串。您應該適用set()于原始資料列:
df6[['one','two','three','four']].apply(set, axis=1)
#0 {IN, UK}
#1 {SA, IN, UK, US}
該引數axis=1指示apply()按行應用set()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/471418.html
標籤:Python python-3.x 熊猫 麻木的
