【发布时间】:2021-10-15 23:29:31
【问题描述】:
熊猫数据框是:
df = pd.DataFrame([['A', 1, 20], ['A', 2, 30], ['B', 1, 50], ['B', 3, 45], ['A', 4, 60], ['B', 5, 70]])
df.columns = ['Type', 'P', 'X']
df:
Type P X
0 A 1 20
1 A 2 30
2 B 1 50
3 B 3 45
4 A 4 60
5 B 5 70
期望:
我想应用嵌套条件来计算一个值并将其附加为一个新列。
这就是我所做的:
result = 0
if (df.Type == 'A'):
if df.P % 2 == 0:
result = df.X+10
else:
restult = df.X+20
else:
if df.P % 2 == 0:
result = df.X+30
else:
result = df.X+40
df['Result'] = result
预期的输出是:
Type P X Result
0 A 1 20 40
1 A 2 30 40
2 B 1 50 90
3 B 3 45 85
4 A 4 60 70
5 B 5 70 110
但它失败并出现错误:ValueError:一个系列的真值是不明确的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
我已经挖掘了其他线程,但它们似乎是其他问题。
欢迎提出任何建议
【问题讨论】: