【发布时间】:2020-11-30 11:56:02
【问题描述】:
从包含 ['race_number', 'number_of_horses_bet_on','odds'] 列的 CSV 文件开始
我想添加/计算一个名为 'desired_output' 的额外列。
'desired_output' 列的计算公式为
- 对于 'race_number' 1,'number_of_horses_bet_on'=2,因此在
'desired_output column'中,仅包含前 2 个'odds'。'race_number'1 的剩余值为 0。然后我们转到'race_number'2 并重复循环。
我尝试过的代码包括:
import pandas as pd
df=pd.read_csv('test.csv')
desired_output=[]
count=0
for i in df.number_of_horses_bet_on:
for j in df.odds:
if count<i:
desired_output.append(j)
count+=1
else:
desired_output.append(0)
print(desired_output)
还有
df['desired_output']=df.odds.apply(lambda x: x if count<number_of_horses_bet_on else 0)
这些都没有给出“desired_output”列的输出
我意识到上面 lambda 中的“计数”放错了位置 - 但希望你能看到我所追求的。 谢谢。
【问题讨论】:
-
请显示您的代码生成的结果
-
下次尝试将使用的数据集提供为文本而不是图片
标签: python pandas list dataframe lambda