使用numpy.其中函数有多个条件,但得到valueError



所以我有一个数据框架,其中有多个列和数字。它看起来像这样:

<表类> H C T P R tbody><<tr>3002005000.35004003000.2

您应该使用位&和括号,而不是and

df['R'] = numpy.where((df['H'] > df['T']) & (df['P'] > 0),
df['C'] / df['T'] - 1, 0)

试试这个

import pandas as pd
d = {'H': [300, 500], 'C': [200, 400], 'T': [500, 300], 'P': [0.3, 0.2]}
df = pd.DataFrame(d)
df
创建一个函数:
def calc(row):
if row[0] > row[2]:
if row[3] > 0:
return row[1]/row[2] - 1
else:
return 0

然后应用函数,通过行

df['R'] = df.apply(calc, axis=1)
df

最新更新