我在python的下面一段代码中遇到语法错误。有人可以帮我知道我在哪里犯了错误。我是python的新手。
X = sorted(cus_np,key=lambda x: \
df1_test.TXNID[(df1_test['CUSTOMERID']==x[:,0])\
&(df1_test['CREDITAMT'] > x[:,1])])
感谢您的回复。这里我有一个小数组,其中包含CUSTOMERID(第1列)和相应的最大CREDITAMT(第2列)的所有不同值。 df1_test是一个更大的数据帧,其中包含许多列。
我正在尝试查找df1_test数据集的所有记录,其中客户的CREDITAMT大于特定客户的最大值(我可以从较小的阵列获得的最大信用额度和不同的客户ID)< / p>
这是我尝试过的。但它给了我错误&#34;数组&#34;的索引太多了。
由于数据量巨大,我不想使用for循环来解决问题。
有人可以帮帮我吗。
我的实际代码是:
import pandas as pd
small_distinct_array=pd.DataFrame({'id':[1,2,3,4],'max':[200,500,800,400]})
bigger_all_array=pd.DataFrame({'custid':[1,3,4,3,1,1,2,2,3,4],'amt':[300,400,800,300,900,700,500,700,400,500]})
感谢您的回应。请参阅我的数据示例:
CallerRunsPolicy
我正在努力获得“custid&#39; greater_all_array的值,其中相应的&#39; amt&#39; value大于同一customerid的small_distinct_array的max字段。
答案 0 :(得分:0)
您不能在参数名称中进行列访问。 cus['id']
和cus['maxamt']
是非法的。只需通过cus
。很可能你在使用这段繁琐的代码时遇到了更多问题,但至少你会摆脱语法错误。
答案 1 :(得分:-1)
&
是一个按位运算符。使用and
代替&
。