我想知道如何使用 pandas 和 numpy 將每一列的值轉換為某個值。
import pandas as pd
import numpy as np
matrix = [[1,2,3], [4,5,6], [7,8,9]]
原始矩陣
| 一個 | b | C |
|---|---|---|
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
輸出矩陣
| 一個 | b | C |
|---|---|---|
| -1.22 | 2 | 3 |
| 0 | 5 | 6 |
| 1.22 | 8 | 9 |
例如,“a”列是 [1, 4, 7]。
'a' 的平均值是 4,'a' 的標準是 2.45 所以,輸出是 [(1-4) / 2.45, (4-4) / 2.45, (7-4) / 2.45]
如何使用 pandas 和 numpy 轉換每個值?
uj5u.com熱心網友回復:
利用:
matrix = [[1,2,3], [4,5,6], [7,8,9]]
df = pd.DataFrame(matrix, columns=list('abc'))
DataFrame.std如果需要處理所有列,則通過 mean 減去所有值并用 set除以ddof=0,因為默認為ddof=1.
df = df.sub(df.mean()).div(df.std(ddof=0))
print (df)
a b c
0 -1.224745 -1.224745 -1.224745
1 0.000000 0.000000 0.000000
2 1.224745 1.224745 1.224745
如果只需要處理一列:
df['a'] = df['a'].sub(df['a'].mean()).div(df['a'].std(ddof=0))
print (df)
a b c
0 -1.224745 2 3
1 0.000000 5 6
2 1.224745 8 9
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/519653.html
上一篇:numpy對角函式很慢
下一篇:如何將由mediaRecorder生成并使用websocket傳輸到python的音頻位元組轉換為numpy陣列
