我有兩個資料框,其中一個資料框有 2 列 11 行,另一個資料框有 2 列和 2 行。
print(df)
輸出是:
C1 C2
0 1 1
1 2 2
2 3 3
3 4 4
4 5 5
5 6 6
6 7 7
7 9 9
8 11 13
9 10 11
10 12 11
第二個資料幀是
列印(df1)
輸出是:
Mean Dev
0 2 0.5
1 1 1.0
我正在嘗試從 df 的第 1 列減去第 1 列第 1 行平均值和第 2 列第 1 行 Dev 值的每個值。下面是代碼
for i in range(0, len(df)):
print((df['C1'][i] - df1['Mean'][0]) / (df1['Dev'][0]))
輸出是:
-2.0
0.0
2.0
4.0
6.0
8.0
10.0
14.0
18.0
16.0
20.0
我的問題是如何針對 Mean 和 Dev 列對每一列執行減法和除法。例如,我正在嘗試撰寫代碼
for i in range(0, len(df)):
print((df['C2'][i] - df1['Mean'][1]) / (df1['Dev'][1]))
其次是
for i in range(0, len(df)):
print((df['C3'][i] - df1['Mean'][2]) / (df1['Dev'][2]))
其次是
for i in range(0, len(df)):
print((df['C4'][i] - df1['Mean'][3]) / (df1['Dev'][3]))
在上面的代碼中,我們回圈了 df 值。如何回圈 df1 值?
誰能幫我這個?
uj5u.com熱心網友回復:
您可以通過以下方式利用逐元素減法在沒有 for 回圈的情況下完成此操作:
import pandas as pd
#Example data
df = pd.DataFrame({'C1': [i for i in range(1, 12)], 'C2': [i for i in range(2, 13)]})
#Example mean and standard deviation
df1 = pd.DataFrame({'Mean': [2, 1], 'Dev': [0.5, 1]})
#Transpose the mean column and subtract from the original dataframe
#Transpose the standard deviation column and divide
df_out = (df - df1['Mean'].to_numpy().T)/df1['dev'].to_numpy().T
這是假設均值/標準差矩陣中的行數等于資料矩陣中的列數。它還假設均值/標準差矩陣中的每個行號對應于資料矩陣中的相同編號列號。
uj5u.com熱心網友回復:
如果您需要將結果存盤在串列中:
l = []
l = (df.loc[:, 'a'] - df2.at[0, 'c1'])/ df2.at[0, 'c2']
如果您需要將新值存盤在新資料框中:
df3 = pd.DataFrame(columns=['c1'])
df3.loc[:,'c1'] = (df.loc[:, 'C1'] - df2.at[0, 'Mean'])/ df2.at[0, 'Dev']
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/315521.html
上一篇:@在回圈陣列中的用途?
