这是我的df:

    feature_name    combo                           p_val   *
0   VC9             [rest_closed, immediate_recall] 0.0053  **
1   VC9             [rest_music, immediate_recall]  0.0345  *
2   VC9             [rest_wonder, rest_closed]      0.0010  ***
3   VC9             [rest_wonder, rest_music]       0.0043  **
4   VC9             [rest_wonder, rest_open]        0.0075  **
5   Theta           [rest_closed, immediate_recall] 0.0098  **
6   Theta           [rest_wonder, rest_closed]      0.0038  **
7   Theta           [statements, rest_closed]       0.0187  *
8   Gamma           [rest_closed, clock]            0.0230  *
9   Gamma           [rest_closed, d1]               0.0111  *
10  Gamma           [rest_closed, immediate_recall] 0.0155  *
11  Gamma           [rest_closed, nb1]              0.0396  *
12  Gamma           [rest_wonder, rest_closed]      0.0065  **
13  Gamma           [statements, rest_closed]       0.0175  *

我正在try 通过Feature_name和amp;组合来达到p_val. 意思是-我想插入示例‘VC9’和[REST_CLOSED,IMMEDIATE_RECALL],并获得匹配的p_val. 我试过的一切都失败了... 这就是我现在所拥有的-

for feature in features:
    
    for comb in combinations:
        pval = df_sigs.loc[(df_sigs['feature_name'].isin([feature])) & (df_sigs['combo'].isin([comb])), df_sigs['p_val']]

我得到的错误是:

TypeError: unhashable type: 'list'

(我想在绘图上打印p_val,这样我只需要一个循环)

当我try 其他方法时,我也多次收到此错误:

ValueError: Lengths must match to compare

(例如,当我使用np.where时)

我认真地try 了我能想到的任何方法--创建另一列字符串列,将列表的两个元素结合在一起.取消列出,将列表转换为元组.我觉得我错过了一些非常基本的东西.

推荐答案

你可以使用Pandas 内置的__getitem__方法,而不是使用.loc,如下所示.

此外,要对包含列表的列进行筛选,您需要创建一个lambda掩码来获取列中每一行的真值

for feature in features:

    for comb in combinations:
        tmp = df[(df['feature_name'] == feature) & (df['combo'].apply(lambda x: x == comb))]
        pval = tmp['p_val'].values[0]
        

Python相关问答推荐

在Google Colab中设置Llama-2出现问题-加载判断点碎片时Cell-run失败

ODE集成中如何终止solve_ivp的无限运行

如何获得每个组的时间戳差异?

如果满足某些条件,则用另一个数据帧列中的值填充空数据帧或数组

如何在表中添加重复的列?

将pandas导出到CSV数据,但在此之前,将日期按最小到最大排序

如何指定列数据类型

如何使用正则表达式修改toml文件中指定字段中的参数值

BeautifulSoup:超过24个字符(从a到z)的迭代失败:降低了首次深入了解数据集的复杂性:

Autocad使用pyautocad/comtypes将对象从一个图形复制到另一个图形

当HTTP 201响应包含 Big Data 的POST请求时,应该是什么?  

为什么后跟inplace方法的`.rename(Columns={';b';:';b';},Copy=False)`没有更新原始数据帧?

如何在Django模板中显示串行化器错误

Seaborn散点图使用多个不同的标记而不是点

极柱内丢失类型信息""

用由数据帧的相应元素形成的列表的函数来替换列的行中的值

将相应的值从第2列合并到第1列(Pandas )

如何获取给定列中包含特定值的行号?

PyTorch变压器编码器中的填充掩码问题

在Python Polar中从一个函数调用添加多个列