数据帧查询未找到值

2024-10-01 04:58:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题,我无法理解为什么我正在搜索的值似乎不存在于dataframe中。你知道吗

我已经开始在我的原始数据帧中组合两个数字列,并分配给一个新的列。然后我从这个组合列中提取了一个唯一值列表

~snip

    self.df['Flitch'] = self.df['Blast'].map(
                str) + "-" + self.df['Bench'].map(str)

    self.flitches = self.df['Flitch'].unique()

~snip

现在在代码中稍微进一步,我需要得到与这些唯一标识符相对应的最早日期值。所以我在数据帧上运行一个查询:

~snip

def get_dates(self):
        '''Extracts mining and loading dates from filtered dataframe'''

        loading_date, mining_date = [],[]

        #loop through all unique flitch ids and get their mining
        #and loading dates

        for flitch in self.flitches:

            temp = self.df.query('Activity=="MINE"')
            temp = temp.query(f'Flitch=={flitch}')
            mining = temp['PeriodStartDate'].min()
            mining_date.append(mining)   

~snip

…我什么也得不到。我不明白为什么。我的意思是,我把从列中提取的数据与同一列进行比较,却没有得到任何匹配。你知道吗

我已经手动检查了惟一id列表是否正确填充。你知道吗

我已经检查了我正在运行查询的数据帧确实有相同的flitch id。你知道吗

我手动检查了self.flitches列表中的几个随机值,每次都返回False。你知道吗

在我将这两个列组合起来并仅使用“Blast”作为标识符之前,一切都运行得很好,但现在我不确定发生了什么。你知道吗

例如,我打印了self.flitches列表:

['5252-528' '5251-528' '3030-492' '8235-516' '7252-488' '7251-488'
 '2351-588' '5436-588' '1130-624' '5233-468' '1790-516' '6301-552'
 '6302-552' '5444-576' '2377-564' '2380-552' '2375-564' '5253-528'
 '2040-468' '2378-564' '1132-624' '1131-624' '6314-540' '7254-488'
 '7253-488' '8141-480' '7250-488']

以下是self.df['Flitch']列的数据:

173     5252-528
174     5251-528
175     5251-528
176     5251-528
177     5251-528
178     5251-528
180     3030-492
181     3030-492
182     3030-492
183     3030-492
...

看起来他们必须匹配,但他们不。。。你知道吗


Tags: and数据selfdataframedf列表datetemp