例如,我有简单的DF:
import pandas as pd
from random import randint
df = pd.DataFrame({'A': [randint(1, 9) for x in xrange(10)],
'B': [randint(1, 9)*10 for x in xrange(10)],
'C': [randint(1, 9)*100 for x in xrange(10)]})
Run Code Online (Sandbox Code Playgroud)
我可以使用Pandas的方法和习语从"A"中选择"B"的相应值大于50,"C" - 不等于900的值吗?
我的dataFrame有以下结构:
Index: 1008 entries, Trial1.0 to Trial3.84
Data columns (total 5 columns):
CHUNK_NAME 1008 non-null values
LAMBDA 1008 non-null values
BETA 1008 non-null values
HIT_RATE 1008 non-null values
AVERAGE_RECIPROCAL_HITRATE 1008 non-null values
chunks=['300_321','322_343','344_365','366_387','388_408','366_408','344_408','322_408','300_408']
lam_beta=[(lambda1,beta1),(lambda1,beta2),(lambda1,beta3),...(lambda1,beta_n),(lambda2,beta1),(lambda2,beta2)...(lambda2,beta_n),........]
my_df.ix[my_df.CHUNK_NAME==chunks[0]&my_df.LAMBDA==lam_beta[0][0]]
Run Code Online (Sandbox Code Playgroud)
我想获取特定块的Dataframe行,可以说chunks [0]和特定的lambda值.因此,在这种情况下,输出应该是数据帧中具有CHUNK_NAME ='300_321'和LAMBDA = lambda1的所有行.对于每个将返回的beta值,将有n行.但相反,我得到了以下错误.任何帮助解决这个问题将不胜感激.
TypeError: cannot compare a dtyped [float64] array with a scalar of type [bool]
Run Code Online (Sandbox Code Playgroud)