简体   繁体   中英

Indexing pandas dataframe when column names are integers

I don't seem to be able to subset data using integer column names using loc command

# 6*4 data set with column names as x,y,8,9

df = pd.DataFrame(np.random.randint(0,10,(6,4)),
                  index=('a','b','c','1','2','3'),
                  columns=['x','y', 8, 9])

df2 = df.loc[:,:'x']
df3 = df.loc[:,:'8']

df2 works but df3 throws error.

You can do either:

df3 = df.loc[:,8]

To get only column 8

Or:

df3 = df.loc[:,df.columns[:list(df.columns).index(8)+1]]

To get all columns until column 8 (inclusive - remove +1 to get exclusive).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM