簡體   English   中英

將一些列除以數據幀的一列

[英]Dividing some columns by one column of a dataframe

我有一個包含 3 個數據列和4 列的數據框。 三列應每個由4列被划分。 我想用三列描述除以數據幀,以及4列留在那里不變。

我用div()命令,但我只拿到3個列沒有4列:

import panda as pd

df

alpha    beta    gama   theta
20.77   20.87   19.87    4.5
19.87   19.89   19.56   5.5
19.56   19.96   20.1    7.5
20.1    20.4    20.53   8

df = df[["alpha", "beta", "gama"]].div(df.theta, axis=0)

我想得到這個數據框:

df
alpha      beta    gama   theta
4.615     4.63    4.415    4.5
3.612     3.616   3.556    5.5
2.608     2.661   2.68     7.5
2.5125    2.55    2.566    8

我目前得到這個:

df
alpha      beta    gama   
4.615     4.63    4.415    
3.612     3.616   3.556  
2.608     2.661   2.68   
2.5125    2.55    2.566
new_df = df.copy()
new_df[["alpha","beta","gama"]] = new_df.div(df.theta, axis=0)

您只能按列表分配過濾的行,也可以只划分過濾的列:

cols = ["alpha", "beta", "gama"]
df[cols] = df[cols].div(df.theta, axis=0)
print (df)
      alpha      beta      gama  theta
0  4.615556  4.637778  4.415556    4.5
1  3.612727  3.616364  3.556364    5.5
2  2.608000  2.661333  2.680000    7.5
3  2.512500  2.550000  2.566250    8.0

另一個想法是在DataFrame.iloc按位置選擇前 3 列:

df.iloc[:, :3] = df.iloc[:, :3].div(df.theta, axis=0)
print (df)
      alpha      beta      gama  theta
0  4.615556  4.637778  4.415556    4.5
1  3.612727  3.616364  3.556364    5.5
2  2.608000  2.661333  2.680000    7.5
3  2.512500  2.550000  2.566250    8.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM