【问题标题】:How to slice lists in Python如何在 Python 中对列表进行切片
【发布时间】:2015-01-29 02:54:16
【问题描述】:

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

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

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

【问题讨论】:

  • 输入数据示例会很有用。
  • 和示例输出..

标签: python pandas split data-cleaning


【解决方案1】:

看起来您的 Q 主题与您实际询问的内容并不密切 - 您对那个列表的切片做得很好,现在您所拥有的是 strings (所述列表中的每个项目)。

无论如何,假设例如第一个是81174 735-739(中间正好四个空格,之前没有,没有制表符,&c),735 是 [9: 12]。比如

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

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

【讨论】:

    【解决方案2】:

    这是一个示例,它将您的数据子集化为仅包含带有“695-699”、“690-694”分数的 FICO 观察结果。

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

    【讨论】:

      【解决方案3】:

      此答案假设 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
      

      从系列中调用值返回和数组(摆脱索引)

      【讨论】:

        猜你喜欢
        • 2020-08-27
        • 1970-01-01
        • 2022-06-16
        • 2012-05-21
        • 2022-01-17
        • 1970-01-01
        • 2018-11-25
        • 2015-01-17
        相关资源
        最近更新 更多