如何获取DataFrame值的索引以及其他
作者:S_o_l_o_n
这篇文章主要介绍了如何获取DataFrame值的索引以及其他问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
获取DataFrame值的索引及其他
1、可以用DataFrame的条件索引,即令df_sub=df[conditions],然后再获取df_sub的index属性即可
2、对于某一个列,可以先转化为list类型,然后利用list.index(values)方法获取索引,其中若有重复着,则返回第一个值对应的索引
3、list.count(value)可返回value在list中的个数
4、DataFrame.count()返回每行或每列的值的个数,除去空值(默认是行)
dataframe索引总结
dataframe通过索引获取数据的方式有[]、iloc、loc等几种方式
使用方法如下:
dates = pd.date_range("20130101", periods=6) df3=pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD'))
A B C D 2013-01-01 0.469112 -0.282863 -1.509059 -1.135632 2013-01-02 1.212112 -0.173215 0.119209 -1.044236 2013-01-03 -0.861849 -2.104569 -0.494929 1.071804 2013-01-04 0.721555 -0.706771 -1.039575 0.271860 2013-01-05 -0.424972 0.567020 0.276232 -1.087401 2013-01-06 -0.673690 0.113648 -1.478427 0.524988
一、[]
df[]的参数只能传入一个维度,要么是行索引,要么是列索引,不能同时传入行索引和列索引。
(一)当查询某一列时,df[]传入一个columns值。
df3['A']
2013-01-01 0.531617 2013-01-02 0.246897 2013-01-03 -0.998825 2013-01-04 0.155664 2013-01-05 -1.624819 2013-01-06 -0.096553 Freq: D, Name: A, dtype: float64
(二)当查询多列时,df[]传入一个columns值的列表。
df3[['A','B']]
A B 2013-01-01 0.531617 -0.482471 2013-01-02 0.246897 3.693472 2013-01-03 -0.998825 0.155230 2013-01-04 0.155664 0.496338 2013-01-05 -1.624819 0.326698 2013-01-06 -0.096553 -0.250773
(三)当查询某一行或多行时,只能传入index值的切片。
df3[0:0] #dataframe的第0行是指columns行。
A B C D
df3[0:3]
A B C D 2013-01-01 0.531617 -0.482471 0.185244 -0.236437 2013-01-02 0.246897 3.693472 0.091417 0.419647 2013-01-03 -0.998825 0.155230 0.942951 0.699358
df3[3:]
A B C D 2013-01-04 0.155664 0.496338 0.458513 0.315339 2013-01-05 -1.624819 0.326698 -2.198222 -0.544078 2013-01-06 -0.096553 -0.250773 0.491527 -1.857682
二、loc
.loc和.iloc的参数可以有值、列表、切片三种方式。传入值时,结果是series,传入列表和切片时,结果是dataframe。
.loc和.iloc的参数通过逗号分为两部分,前面是行索引或下标,后面是列索引或下标,列索引可以省略,但行索引不能省略。
最后
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。