使用python将Converto pandas对象转换为整数

时间:2017-03-08 15:48:56

标签: python pandas datetime matplotlib jupyter-notebook

我在将pandas对象转换为整数时遇到了一些问题。具体来说,我使用了一个关于P2P贷款的贷款俱乐部的可用数据集,有一个名称为“期限”的栏目与飞蛾的贷款期限有关,而不是整数而是作为对象(例如'36个月'),这一列是一个对象类型但我需要转换为整数:我不想要'36个月'但是'36'并将其计算为int。我已经尝试了日期时间和时间库,但没有一个可以找到解决方案。 这些数据可在线获取:https://www.lendingclub.com/info/download-data.action - >贷款数据 - > 2012-2013。

import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
data = pd.read_csv("C://////LoanStats3b.csv", skiprows= 1, low_memory = False)

然后我发现了这个功能:

import datetime
import time
import logging
logging.basicConfig(level = logging.DEBUG)
log = logging.getLogger('parsedatetime')

def makeEpochTime(date_time):
    """
    provides the seconds since epoch give a python datetime object.

    @param date_time: Python datetime object

    @return:
        seconds_since_epoch:: int 
    """
    date_time = date_time.isoformat().split('.')[0].replace('T',' ')
    #'2009-07-04 18:30:47'
    pattern = '%Y-%m-%d %H:%M:%S'
    seconds_since_epoch = int(time.mktime(time.strptime(date_time, pattern)))
    return seconds_since_epoch 

但它无法解决我的问题 我该怎么办?
我在Jupyter笔记本中使用3.6.0 python版本 谢谢

1 个答案:

答案 0 :(得分:0)

您可以尝试使用正则表达式来提取数字:

data['term'].astype(str).str.extract(r'([0-9]+)').fillna(0).astype(int)

当我这样做时,我得到:

>>> df['term'].astype(str).str.extract(r'([0-9]+)').fillna(0).astype(int).head()
0    36
1    36
2    36
3    36
4    36
Name: term, dtype: int32

我不知道你是怎么得到全部的。