我有一个称为竞赛的数据框
我感兴趣的两列
TST =拍摄总数 SM =拍摄
我想复制这个称为竞赛的数据框,并创建一个划分SM / TST的新列
我正在使用pandas和numpy。制作数据帧新副本的步骤。使用此计算将新列添加到重复的数据帧中,称为shotperc =射击百分比将非常有帮助。我本周刚开始使用Jupyter笔记本。
答案 0 :(得分:1)
有很多方法可以实现您想要的。
new_contest = contest.copy()
new_contest["shot_percent"] = new_contest["shots_made"] / new_contest["shots_taken"]
print(new_contest)
shots_taken shots_made shot_percent
0 90 45 0.50
1 100 50 0.50
2 200 150 0.75
3 80 60 0.75
4 50 10 0.20
assign
方法,该方法隐式执行copy
以确保原始数据帧保持不变。new_contest = contest.assign(shot_percent=lambda df: df["shots_made"] / df["shots_taken"])
print(new_contest)
shots_taken shots_made shot_percent
0 90 45 0.50
1 100 50 0.50
2 200 150 0.75
3 80 60 0.75
4 50 10 0.20
eval
DataFrame方法,该方法还隐式复制原始数据帧,以确保原始数据不会更改。这也是imo可读性最高的结果。new_contest = contest.eval("shot_percent = shots_made / shots_taken")
print(new_contest)
shots_taken shots_made shot_percent
0 90 45 0.50
1 100 50 0.50
2 200 150 0.75
3 80 60 0.75
4 50 10 0.20
以上方法均不能更改原始数据框,希望对您有所帮助!