我的数据框包含度量列SalesMonth1
- SalesMonth12
以及其他列Index
和price
。
我正在尝试执行以下操作,但它不起作用。你能建议一个更好的方法吗?
For i in range(12):
DF['Newcol'] = np.where(DF["Index"] >0,
DF["SalesMonth[i]"] * DF["price"],
DF["SalesMonth[i]"])
答案 0 :(得分:1)
你很亲密。试试这个:
for i in range(12):
df['newcol'+str(i)] = np.where(df['Index'] > 0,
df['SalesMonth'+str(i)] * df['price'],
df['SalesMonth'+str(i)])
诀窍是通过str
将整数转换为字符串。
答案 1 :(得分:1)
使用loc
进行就地分配(非常便宜,快速)。
m = df["Index"] > 0
df.loc[m, 'SalesMonth1':'SalesMonth12'] *= df.loc[m, 'Price']