1
我有一個熊貓數據框,其中有20個項目,我想通過4行重新整理5列。從熊貓數據框中的一列移動到多列或多列
這是可能的熊貓數據幀?然後是否可以做相反的處理,並將生成的5 * 4數據幀轉換爲2 * 10或1 * 20?
我有一個熊貓數據框,其中有20個項目,我想通過4行重新整理5列。從熊貓數據框中的一列移動到多列或多列
這是可能的熊貓數據幀?然後是否可以做相反的處理,並將生成的5 * 4數據幀轉換爲2 * 10或1 * 20?
我覺得你可以先用values
轉換到numpy array
然後numpy.ndarray.reshape
:
df = pd.DataFrame({'A':[1,2,3,7,7],
'B':[4,5,6,8,0],
'C':[7,8,9,7,8],
'D':[1,3,5,8,1]})
print (df)
A B C D
0 1 4 7 1
1 2 5 8 3
2 3 6 9 5
3 7 8 7 8
4 7 0 8 1
df = pd.DataFrame(df.values.reshape(4,5),columns=list('ABCDE'))
print (df)
A B C D E
0 1 4 7 1 2
1 5 8 3 3 6
2 9 5 7 8 7
3 8 7 0 8 1
print (df.values.reshape(10,2))
[[1 4]
[7 1]
[2 5]
[8 3]
[3 6]
[9 5]
[7 8]
[7 8]
[7 0]
[8 1]]
print (pd.DataFrame(df.values.reshape(10,2), columns=list('AB')))
A B
0 1 4
1 7 1
2 2 5
3 8 3
4 3 6
5 9 5
6 7 8
7 7 8
8 7 0
9 8 1
編輯的評論:
pos = [1,5,7,8,10,8]
print (pd.DataFrame(np.array(pos).reshape(2,3),columns=list('ABC')))
A B C
0 1 5 7
1 8 10 8
如果你正在傳遞有點像列入數據框,你能同時重塑它嗎?例如,如果pos是我的列表,我得到一個錯誤:pd.DataFrame(pos).reshape(4,5),columns = list('ABCDE')) – yoshiserry
我想你需要將'list'轉換爲numpy數組' pd.DataFrame(np.array(pos).reshape(4,5),columns = list('ABCDE'))' – jezrael
我編輯答案,請檢查它。 – jezrael