【发布时间】:2021-03-18 07:33:30
【问题描述】:
我正在尝试在我的数据框中创建一个新列。这是我想做的:
- 新建“明星力量”栏目
- 如果球员命中数在前 5 名,则“明星力量”增加 1 分,如果在前 3 名,则增加 2 分,如果球员是第 1 名,则增加 3 分。
以下是创建我正在使用的数据框的较小版本的代码:
import pandas as pd
mydict = {
'Name' : ['Bill', 'Tom', 'Jack', 'Bob', 'Phil', 'Tim', 'Vick', 'Peter', 'Al', 'Jay'],
'Hits' : [20, 15, 22, 12, 5, 6, 12, 23, 13, 25],
'AVG' : [.750, .500, .250, .300, .200, .760, .450, .400, .330, .500],
'StarPower' : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],}
df = pd.DataFrame(mydict)
df
Name Hits AVG StarPower 0 Bill 20 0.75 0 1 Tom 15 0.50 0 2 Jack 22 0.25 0 3 Bob 12 0.30 0 4 Phil 5 0.20 0 5 Tim 6 0.76 0 6 Vick 12 0.45 0 7 Peter 23 0.40 0 8 Al 13 0.33 0 9 Jay 25 0.50 0
我知道我应该结合使用 for 循环和 if 语句。但老实说,我无法理解它。
感谢任何帮助。
【问题讨论】:
-
你能添加预期的输出吗?如果top1得3分还是3+2+1分?
标签: python pandas for-loop if-statement