第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

python 中循環(huán)獲取列名

python 中循環(huán)獲取列名

慕尼黑5688855 2023-10-05 16:51:15
我想將一個(gè)數(shù)據(jù)幀(df1)的平均值寫入另一個(gè)數(shù)據(jù)幀(dfmaster)。我可以手動(dòng)管理它,但我想以這種方式自動(dòng)化該過(guò)程,它將從 df1 (作為變量)讀取所有列名稱,并且這些變量將在下面的代碼中使用,以計(jì)算所有列的平均值數(shù)據(jù)幀 (df1) 中的列。從這個(gè)數(shù)據(jù)框中應(yīng)該計(jì)算出列的平均值:import pandas as pd  data = [[6.2, 10, 8], [6.4, 15, 13], [6.6, 14, 6]]  df1 = pd.DataFrame(data, columns = ['Prozess233', 'Prozess234', 'Prozess235'])  df1這是應(yīng)存儲(chǔ)均值的主數(shù)據(jù)框:data = [['Prozess233','NaN', 'NaN','NaN'], ['Prozess234','NaN', 'NaN', 'NaN'], ['Prozess235','NaN', 'NaN', 'NaN']] dfmaster = pd.DataFrame(data, columns = ['Process', 'Mean', 'St.Dev', 'Max']) dfmaster 以下是計(jì)算 df1 的一列平均值并將該值存儲(chǔ)在主數(shù)據(jù)幀中的代碼:index = dfmaster.loc[dfmaster['Process'] == 'Prozess233'].index[0]keep_col = ['Prozess233']df1 = df1[keep_col]df1 = df1[df1['Prozess233'].notna()]meanPR = df1["Prozess233"].mean()dfmaster.at[index, 'Mean'] = meanPR這是結(jié)果:我想要一個(gè)循環(huán),上面的代碼(將平均值存儲(chǔ)到主數(shù)據(jù)幀中)將對(duì)數(shù)據(jù)幀 df1 的所有列執(zhí)行 - “Prozess234”和“Prozess235”的平均值。我不知道如何存儲(chǔ)列名(df1),以便在循環(huán)中使用它們。我不確定這是否是正確的方法。
查看完整描述

3 回答

?
慕娘9325324

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以使用 agg 獲取每列的特定聚合:


df1_summary = (df1.agg(["mean", "std", "max"])

               .rename(index={"mean": "Mean", "std": "St.Dev", "max": "Max"}))


print(df1_summary)

        Prozess233  Prozess234  Prozess235

Mean           6.4   13.000000    9.000000

St.Dev         0.2    2.645751    3.605551

Max            6.6   15.000000   13.000000

然后如果你想將其填充到你的dfmaster


dfmaster = dfmaster.set_index("Process") 

dfmaster.update(df1_summary.T)


print(dfmaster)

            Mean    St.Dev   Max

Process                         

Prozess233   6.4  0.200000   6.6

Prozess234  13.0  2.645751  15.0

Prozess235   9.0  3.605551  13.0


查看完整回答
反對(duì) 回復(fù) 2023-10-05
?
富國(guó)滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

無(wú)需一一添加到 dfmaster,只需使用矢量化方法創(chuàng)建它:


import pandas as pd 

data = [[6.2, 10, 8], [6.4, 15, 13], [6.6, 14, 6]] 

df1 = pd.DataFrame(data, columns = ['Prozess233', 'Prozess234', 'Prozess235']) 

dfmaster=pd.concat([df1.mean(), df1.std(), df1.max()], axis=1).reset_index()

dfmaster.columns = ['Process','Mean', 'St.Dev', 'Max']


#dfmaster

      Process  Mean    St.Dev   Max

0  Prozess233   6.4  0.200000   6.6

1  Prozess234  13.0  2.645751  15.0

2  Prozess235   9.0  3.605551  13.0

另外,根據(jù)您的需要考慮檢查 的df1.describe()輸出:


       Prozess233  Prozess234  Prozess235

count         3.0    3.000000    3.000000

mean          6.4   13.000000    9.000000

std           0.2    2.645751    3.605551

min           6.2   10.000000    6.000000

25%           6.3   12.000000    7.000000

50%           6.4   14.000000    8.000000

75%           6.5   14.500000   10.500000

max           6.6   15.000000   13.000000


查看完整回答
反對(duì) 回復(fù) 2023-10-05
?
慕容708150

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊

雖然您可以使用 獲取數(shù)據(jù)框的列df.columns,但幾乎沒(méi)有充分的理由迭代 pandas 數(shù)據(jù)框以進(jìn)行簡(jiǎn)單的數(shù)學(xué)計(jì)算。


你所追求的可以用


df1.T.stack().groupby(level=0).agg({np.mean,np.std, max})


            mean    std         max

Prozess233  6.4     0.200000    6.6

Prozess234  13.0    2.645751    15.0

Prozess235  9.0     3.605551    13.0

進(jìn)一步細(xì)分:


轉(zhuǎn)置數(shù)據(jù)框


dft=df1.T

dft


            0       1       2

Prozess233  6.2     6.4     6.6

Prozess234  10.0    15.0    14.0

Prozess235  8.0     13.0    6.0

堆疊數(shù)據(jù)框


dfs=dft.stack()

dfs


Prozess233  0     6.2

            1     6.4

            2     6.6

Prozess234  0    10.0

            1    15.0

            2    14.0

Prozess235  0     8.0

            1    13.0

            2     6.0

dtype: float64

組和聚合


dfmaster=dfs.groupby(level=0).agg({np.mean,np.std, max})

dfmaster


            mean    std         max

Prozess233  6.4     0.200000    6.6

Prozess234  13.0    2.645751    15.0

Prozess235  9.0     3.605551    13.0


查看完整回答
反對(duì) 回復(fù) 2023-10-05
  • 3 回答
  • 0 關(guān)注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)