Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
548 views
in Technique[技术] by (71.8m points)

python - Panda .loc or .iloc to select the columns from a dataset

I have been trying to select a particular set of columns from a dataset for all the rows. I tried something like below.

train_features = train_df.loc[,[0,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]]

I want to mention that all rows are inclusive but only need the numbered columns. Is there any better way to approach this.

sample data:

age  job        marital   education    default   housing   loan   equities   contact     duration   campaign   pdays   previous   poutcome   emp.var.rate   cons.price.idx   cons.conf.idx   euribor3m     nr.employed   y
56   housemaid  married   basic.4y     1         1         1      1          0           261        1          999     0          2          1.1            93.994           -36.4           3.299552287   5191          1
37   services   married   high.school  1         0         1      1          0           226        1          999     0          2          1.1            93.994           -36.4           0.743751247   5191          1
56   services   married   high.school  1         1         0      1          0           307        1          999     0          2          1.1            93.994           -36.4           1.28265179    5191          1

I'm trying to neglect job, marital, education and y column in my dataset. y column is the target variable.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

If need select by positions use iloc:

train_features = train_df.iloc[:, [0,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]]
print (train_features)
   age  default  housing  loan  equities  contact  duration  campaign  pdays  
0   56        1        1     1         1        0       261         1    999   
1   37        1        0     1         1        0       226         1    999   
2   56        1        1     0         1        0       307         1    999   

   previous  poutcome  emp.var.rate  cons.price.idx  cons.conf.idx  euribor3m  
0         0         2           1.1          93.994          -36.4   3.299552   
1         0         2           1.1          93.994          -36.4   0.743751   
2         0         2           1.1          93.994          -36.4   1.282652   

   nr.employed  
0         5191  
1         5191  
2         5191  

Another solution is drop unnecessary columns:

cols= ['job','marital','education','y']
train_features = train_df.drop(cols, axis=1)
print (train_features)
   age  default  housing  loan  equities  contact  duration  campaign  pdays  
0   56        1        1     1         1        0       261         1    999   
1   37        1        0     1         1        0       226         1    999   
2   56        1        1     0         1        0       307         1    999   

   previous  poutcome  emp.var.rate  cons.price.idx  cons.conf.idx  euribor3m  
0         0         2           1.1          93.994          -36.4   3.299552   
1         0         2           1.1          93.994          -36.4   0.743751   
2         0         2           1.1          93.994          -36.4   1.282652   

   nr.employed  
0         5191  
1         5191  
2         5191  

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

56.9k users

...