Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法从float64对象中删除索引信息_Python_Pandas_If Statement_Logical Operators - Fatal编程技术网

Python 无法从float64对象中删除索引信息

Python 无法从float64对象中删除索引信息,python,pandas,if-statement,logical-operators,Python,Pandas,If Statement,Logical Operators,我想根据情况对数据进行一些统计处理。但是我一直在下面的if语句阶段遇到这个错误,我认为这很可能是因为我无法访问float对象Q11中的值 ValueError:序列的真值不明确?使用a.empty、a.bool()、a.item()、a.any()或a.all() 我定义了一个流来获取一些信息 df_g=df.groupby("score") veni_vidi = [] for col in df.columns: if col=='patient': Q11

我想根据情况对数据进行一些统计处理。但是我一直在下面的
if语句
阶段遇到这个错误,我认为这很可能是因为我无法访问float对象
Q11
中的值

ValueError:序列的真值不明确?使用a.empty、a.bool()、a.item()、a.any()或a.all()

我定义了一个流来获取一些信息

df_g=df.groupby("score")

veni_vidi = []

for col in df.columns:

    if col=='patient':

        Q11 = df_g[col].transform(lambda group: np.percentile(group, q=25))

        Q11.reset_index(inplace=True,drop=True) #trying to drop index from here but it seems not working!

        for val in df[col]:



            if val < Q11:  #This is giving error because of index I guess
                veni_vidi.append('veni')

            else:
                veni_vidi.append('vici')
但不能解决问题


提前谢谢

我们可以使用
np.where

df_g=df.groupby("score")

veni_vidi = []

for col in df.columns:

    if col=='patient':

        Q11 = df_g[col].transform(lambda group: np.percentile(group, q=25))


        for val in df[col]:

            veni_vidi.append(np.where(val < Q11,'veni','vici'))
df_g=df.groupby(“分数”)
维尼维迪=[]
对于df.列中的列:
如果col==“患者”:
Q11=df_g[col].变换(λ组:np.百分位数(组,q=25))
对于df[col]中的val:
veni_vidi.append(名词短语,其中(val
我们可以使用
np.where

df_g=df.groupby("score")

veni_vidi = []

for col in df.columns:

    if col=='patient':

        Q11 = df_g[col].transform(lambda group: np.percentile(group, q=25))


        for val in df[col]:

            veni_vidi.append(np.where(val < Q11,'veni','vici'))
df_g=df.groupby(“分数”)
维尼维迪=[]
对于df.列中的列:
如果col==“患者”:
Q11=df_g[col].变换(λ组:np.百分位数(组,q=25))
对于df[col]中的val:
veni_vidi.append(名词短语,其中(val
No,这是一个错误,因为
Q11
是一个系列。
242
小于整个系列意味着什么?但这似乎是一个X/Y问题?你需要实现什么样的操作?几乎可以肯定,有一种更好的方法可以删除循环,并使用更简洁的函数完成所需的操作。@ALollz
242
只是一个数字,没有特殊意义。这只是定义问题的一个可重复的例子。@Alolz我试图将
veni_vidi
添加到原始数据帧中,在此之前,我需要进行逻辑运算来定义它。为了解决问题,我需要保留循环。是的,我理解,但请重新阅读我写的内容。在抛出错误的那一行,您的语法
val
实际上是在询问,数字
242
是否比序列
Q11
小。你不是在用数字来检验数字,你是在用一个数字来检验整个数列,并且期望一个真值。这是不明确的,如果它总是正确的,应该是正确的,还是至少正确一次?不,它给你一个错误,因为
Q11
是一个系列。
242
小于整个系列意味着什么?但这似乎是一个X/Y问题?你需要实现什么样的操作?几乎可以肯定,有一种更好的方法可以删除循环,并使用更简洁的函数完成所需的操作。@ALollz
242
只是一个数字,没有特殊意义。这只是定义问题的一个可重复的例子。@Alolz我试图将
veni_vidi
添加到原始数据帧中,在此之前,我需要进行逻辑运算来定义它。为了解决问题,我需要保留循环。是的,我理解,但请重新阅读我写的内容。在抛出错误的那一行,您的语法
val
实际上是在询问,数字
242
是否比序列
Q11
小。你不是在用数字来检验数字,你是在用一个数字来检验整个数列,并且期望一个真值。这是不明确的,如果它总是正确的,那么它应该是正确的,还是至少正确一次?
df_g=df.groupby("score")

veni_vidi = []

for col in df.columns:

    if col=='patient':

        Q11 = df_g[col].transform(lambda group: np.percentile(group, q=25))


        for val in df[col]:

            veni_vidi.append(np.where(val < Q11,'veni','vici'))