【发布时间】:2021-09-30 17:58:45
【问题描述】:
我有一个这样的数据框:
Patch Last reward First reward Difference Name Block_No.
group_id
1 3 0.0 0.0 0.0 XYZ 1
2 4 43.0 54.0 11.0 XYZ 1
3 5 0.0 0.0 0.0 XYZ 2
4 6 40.0 65.0 25.0 XYZ 2
5 7 0.0 0.0 0.0 XYZ 3
6 0 0.0 0.0 0.0 XYZ 3
我想根据以下条件创建一个名为“Rep_rate”的新列: 如果block_no。 = 1 那么如果 patch = 3 , Rep_rate = 4 ,否则 Rep_rate = 0。
我试过这样做:
if (df_last['Block_No.']) == 0:
for i in range (len(df_last)):
if df_last['Patch'][i] == 1:
rep = 8
else:
rep = 0
df_last['Rep_Rate'] = rep
if (df_last['Block_No.']) == 1:
for i in range (len(df_last)):
if df_last['Patch'][i] == 1:
rep = 4
else:
rep = 0
df_last['Rep_Rate'] = rep
if (df_last['Block_No.']) == 3:
for i in range (len(df_last)):
if df_last['Patch'][i] == 1:
rep = 8
else:
rep = 0
df_last['Rep_Rate'] = rep
但是当我尝试这个时,我得到以下错误:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
【问题讨论】:
标签: python python-3.x pandas dataframe valueerror