正确返回“日期”:仅返回值,不返回定义参数

2024-06-27 02:06:14 发布

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

对于noob问题,很抱歉,但是如何在函数中只返回的“值”的“日期”

下面的方法返回正确的匹配日期,但当它给出结果时,所有输出(包括有关数据的详细信息)都会插入到数据框中:

         def dataDelib(self, energyComp, keys1):
            k = self.datasDelib[(self.datasDelib['Company'] == energyComp) & (self.datasDelib['keys1'] == keys1)]['Data']
            if (len(k) == 0):
                k = 0
            else:
                k = k
            return k

所以,如果我们试图得到

  1. 作为能源公司的“光”
  2. “201803”作为键1

我们得到了结果(这是正确的):

      Out[495]: 
      42   2018-03-15
      Name: Data, dtype: datetime64[ns]

enter image description here

但是,它不是只将2018-03-15插入数据帧,而是将终端的整个输出准确地放入:

    Out[469]: 
           data1  ...                                    dataDelib
     0     2016-01-01  ...                                                  0
     1     2016-02-01  ...                                                  0
     2     2016-03-01  ...                                                  0
     3     2016-04-01  ...                                                  0
     4     2016-05-01  ...  249   2018-03-15    Name: Data, dtype: datetime64
     5     2016-06-01  ...                                                  0

一种可能是将输出转换为字符串,然后选择与数据范围对应的适当“子字符串”:

    str(k)[5:15]

这将导致相应的日期:

   str(k)[5:15]
   Out[503]: '2018-03-15'

不管怎么说,这个策略似乎有点愚蠢,对吧? 这是一种“严格意义上”提取结果的方法吗(我的意思是,只有日期本身


Tags: 数据方法字符串nameselfdataoutdtype