我正在嘗試在我的 DataFrame 上創建一個新列,將兩個現有列分組
import pandas as pd
import numpy as np
DATA=pd.DataFrame(np.random.randn(5,2), columns=['A', 'B'])
DATA['index']=np.arange(5)
DATA.set_index('index', inplace=True)
輸出是這樣的
'A' 'B'
index
0 -0.003635 -0.644897
1 -0.617104 -0.343998
2 1.270503 -0.514588
3 -0.053097 -0.404073
4 -0.056717 1.870671
我想要一個額外的列'C',其中包含和對應行np.array的元素。在實際情況下,并且已經是 1D ,但長度不同。我想用堆疊或連接的所有元素制作一個更長的陣列。'A''B''A''B'np.arrays
謝謝
uj5u.com熱心網友回復:
如果列a和b包含 numpy 陣列,則可以跨行應用hstack:
import pandas as pd
import numpy as np
num_rows = 10
max_arr_size = 3
df = pd.DataFrame({
"a": [np.random.rand(max_arr_size) for _ in range(num_rows)],
"b": [np.random.rand(max_arr_size) for _ in range(num_rows)],
})
df["c"] = df.apply(np.hstack, 1)
assert all(row.a.size row.b.size == row.c.size for _, row in df.iterrows())
uj5u.com熱心網友回復:
DATA['C'] = DATA.apply(lambda x: np.array([x.A, x.B]), axis=1)
熊貓要求所有行的長度相同,因此不應該存在熊貓系列不均勻的問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/391878.html
