【问题标题】:Slicing and Indexing a Series in Python在 Python 中对系列进行切片和索引
【发布时间】:2017-06-22 02:48:37
【问题描述】:

我正在学习 Python 和 Scikit,并且正在做一些简单的练习。在特定情况下,我运行以下代码:

import pandas as pd
df = pd.read_csv('SMSSpamCollection',delimiter='\t',header=None)  # from UCIMachineLearningRepository http://archive.ics.uci.edu/ml/datasets/SMS+Spam+Collection
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model.logistic import LogisticRegression
from sklearn.cross_validation import train_test_split, cross_val_score
X_train_raw, X_test_raw, y_train, y_test = train_test_split(df[1], df[0])

我打印:

print(X_test_raw[0:5])

输出:

3035      Get ready for  <#>  inches of pleasure...
2577                 In sch but neva mind u eat 1st lor..
3302             RCT' THNQ Adrian for U text. Rgds Vatian
90      Yeah do! Don‘t stand to close tho- you‘ll catc...
2355                 R we going with the  <#>  bus?
Name: 1, dtype: object

然后我将 X_test_raw 系列的第一个元素逐个索引:

X_test_raw[0]

出来

'Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...'

然后

X_test_raw[1]

出来

'Ok lar... Joking wif u oni...'

然后

X_test_raw[2]

出来

KeyError: 2L

发生了什么事?为什么在对前 5 个元素序列进行切片以及分别对该序列的每个元素进行索引时会返回不同的值?为什么我在为 Series 的 3d 元素编制索引时收到关键错误消息?

您的建议将不胜感激

【问题讨论】:

    标签: python indexing scikit-learn slice series


    【解决方案1】:

    如果使用X_test_raw[2],请尝试使用index=2 获取row,但如果缺少获取:

    KeyError: 2L

    按职位选择需要ilociat

    X_test_raw.iloc[2]
    

    示例:

    s = pd.Series(['a','s','f'], index=[2,3,5])
    print (s)
    2    a
    3    s
    5    f
    dtype: object
    
    print (s[2])
    a
    
    print (s[1:3])
    3    s
    5    f
    dtype: object
    
    print (s.loc[2])
    a
    
    
    print (s.iloc[2])
    f
    

    您可以查看:

    【讨论】:

      猜你喜欢
      • 2011-01-20
      • 2015-06-14
      • 2019-03-17
      • 2020-08-27
      • 2012-09-17
      • 2020-02-27
      • 2021-11-20
      • 2019-11-14
      相关资源
      最近更新 更多