如何获取熊猫的行索引在系列上应用功能

时间:2018-07-30 14:58:18

标签: python python-2.7 pandas

我有一个DataFrame,我将其划分为Series系列列(在下面的代码片段中为col_series),并使用对每个Series中的每个值应用测试。但是我想报告在检测到错误时该系列的哪一行受到影响。

...
            col_series.apply(self.testdatelimits, args= \
                (datetime.strptime('2018-01-01', '%Y-%m-%d'), key))


def testlimits(self, row_id, x, lowerlimit, col_name):
    low_error = None
    d = float(x)
    if lowerlimit != 'NA' and d < float(lowerlimit):
        low_error = 'Following record has column ' + col_name + ' lower than range check'
    if low_error is not None:
        self.set_error(col_index, row_id, low_error)

当然,以上操作失败了,因为x是一个str,并且没有name属性。我在想,也许我可以传递系列中的行索引,但是不清楚如何做到这一点?

编辑: 我改用列表理解来解决此问题,而不是使用ps。速度也快很多

col_series = col_series.apply(pd.to_datetime, errors='ignore')
dfwithrow = pd.DataFrame(col_series)
dfwithrow.insert(0, 'rowid', range(0, len(dfwithrow)))
dfwithrow['lowerlimit'] = lowlimit
dfwithrow['colname'] = 'fred'

list(map(self.testdatelimits, dfwithrow['rowid'], dfwithrow[colvalue[0]], \
    dfwithrow['lowerlimit'], dfwithrow['colname']))

0 个答案:

没有答案