如何在Python中切片列表

时间:2015-01-29 02:54:16

标签: python pandas split data-cleaning

我正在尝试为python中的日志回归清理一些数据,我的列表一直显示为

loansData['FICO.Score'][0:5]
Out[23]: 
81174    735-739
99592    715-719
80059    690-694
15825    695-699
33182    695-699

我希望能够选择较低的fico范围编号,如何删除第一组数字并删除较高范围?

3 个答案:

答案 0 :(得分:1)

看起来你问的主题与你实际要求的内容密切相关 - 你对那个列表的切片做得很好,现在是你的取而代之的是字符串(每个来自所述列表的项目)。

无论如何,假设例如第一个是81174 735-739(中间恰好有四个空格,之前没有,没有标签,& c),735字符串切片[9:12]。例如,

[s[9:12] for s in loansData['FICO.Score'][0:5]]

应该显示你想要的东西(如果关于提取字符串格式的上述假设不正确,可能很容易需要调整1左右,但是,这是一般的想法)。

答案 1 :(得分:0)

这是一个示例,它会将您的数据子集化为仅包含FICO观察,并且包括#6; 695-699',' 690-694'分数。

loansData['FICO.Score'][loansData['FICO.Score'].isin(['695-699', ' 690-694'])]

答案 2 :(得分:0)

这个答案假设5位数字是系列索引,并且你想要返回一个具有每个值下限的数组。

import pandas as pd

数据:

i=[81174,99592,80059,15825,33182]
d = ['735-739','715-719','690-694','695-699','695-699']

重新创建框架:

df =pd.DataFrame(d, index=i, columns=['FICO.Score'])

切片字符串并转换为int:

df['FICO.Score'].apply(lambda x: int(x[:-4])).values

从系列调用值返回和数组(删除索引)