我有以下形式的DataFrame
:分組一個數據幀和應用元組
df = pd.DataFrame({('a','A'):[3,4,5,6],
('a','B'):[1,1,3,5],
('b','A'):[9,7,0,3],
('b','B'):[2,0,1,6]
})
看起來像這樣:
通過使用下面的命令第二級 I組它:
grouped = df.groupby(level=1,axis=1)
並獲得:
Group A
________
a b
A A
0 3 9
1 4 7
2 5 0
3 6 3
Group B
________
a b
B B
0 1 2
1 1 0
2 3 1
3 5 6
如何獲取每個組的兩列,並將它們按行排列成一個元組並將其轉換爲新的DataFrame
。基本上我試圖讓這個:
A B
0 (3,9) (1,2)
1 (4,7) (1,0)
2 (5,0) (3,1)
3 (6,3) (5,6)
我一直在試圖
grouped.apply(lambda x : tuple(x))
但它不會做的工作,而是給我列名的元組。有沒有簡單的方法來做到這一點,而不訴諸for
循環?
你不使用循環慾望暗示你有興趣的表現。如果你對性能感興趣,那麼你不應該把元組放在DataFrame中,因爲元組不是本地的NumPy dtype。如果你堅持使用NumPy dtypes(例如'int64's),DataFrame中的算術運算將會更快。 – unutbu