我不知道,怎麼我可以做下面的轉換:熊貓:包含變量的名稱和值的多個列:如何使用Pivot?
我有一個數據幀尋找這樣的:
Index Name detail1 detail1_value detail2 detail2_value detail3 detail3_value
1 Albert Age 30 Group A Hometown beautifulplace
2 Bea Age 28 Hometown anotherplace None None
3 Celin Age 45 Group B None None
4 Dave Group A None None None None
但是你可以想像,我的宗旨是:
Index Name Age Group Hometown
1 Albert 30 A beautifulplace
2 Bea 28 anotherplace
3 Celin 45 B
4 Dave A
我很確定ech細節只出現一次。 爲了保持複雜:我不確定每個細節是否完全相同(在某些情況下,例如Hometowns而不是家鄉)。
我目前唯一能看到的解決方案是從每對列(如detail1和detail1_value)中生成singel數據透視表。在第二步中,創建一個新的數據集,並在年齡信息上搜索這些數據透視表中的每一個。 但我對python的信任告訴我,必須有更好的辦法...
謝謝!
PS: 可能會有幫助:
dataset = pd.DataFrame({'Name': ['Albert', 'Bea', 'Celine', 'Dave'],
'detail1': ['Age', 'Age', 'Age', 'Group'],
'detail1_value': ['30', '28', '45', 'A'],
'detail2': ['Group', 'Hometown', 'Group', None],
'detail2_value': ['A', 'anotherplace', 'B', None],
'detail3': ['Hometown', None, None, None],
'detail3_value': ['beautifulplace', None, None, None]})
我有點被你的數據集不解。舉例來說:對於索引2,在我看來,Hometown屬於列detail3,另一個屬於列detail3_value。 – vestland
你說得對。這是我的問題的原因。你會發現與索引4相同的情況,其中「組」是詳細1而不是像其他「組」一樣的細節2。否則解決方案將是一個簡單的支點。 –
在這種情況下,我認爲你應該重新考慮你的初始數據框是如何構建的。將有問題的值移到右邊兩個步驟並將其替換爲None將使得操作更簡單。是否有機會從Excel導入? – vestland