[英]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.