本文共 1928 字,大约阅读时间需要 6 分钟。
行选择
不管何时,你调用了一个方法返回或者打印一个DataFrame时,最左边的一列必然是索引值,可以通过index属性来直接访问DataFrame的索引值。import pandas as pddf1=pd.DataFrame({ 'name':['kate','herz','catherine','sally'], 'age':[25,28,39,35]})df2=pd.DataFrame({ 'name':['kate','herz','sally'], 'score':[70,60,90]})df=pd.merge(df1,df2,on="name")print(df)print("index:",df.index)
输出:
age name score0 25 kate 701 28 herz 602 35 sally 90index: Int64Index([0, 1, 2], dtype='int64')
在Series中,每一个索引都对应着一个值,在DataFrame中,每一个索引则对应着一行的数据,可以通过几种方法来选择多数据。
import pandas as pddf1=pd.DataFrame({ 'name':['kate','herz','catherine','sally'], 'age':[25,28,39,35]})df2=pd.DataFrame({ 'name':['kate','herz','sally'], 'score':[70,60,90]})df=pd.merge(df1,df2,on="name")print(df)#选择前2行print("0-2\n",df[0:2])#选择索引为2 的行print("2:\n",df.loc[2])#选择索引为0,2 的行print(df.loc[[0,2]])
输出:
age name score0 25 kate 701 28 herz 602 35 sally 900-2 age name score0 25 kate 701 28 herz 602: age 35name sallyscore 90Name: 2, dtype: object age name score0 25 kate 702 35 sally 90
注意:loc[]与iloc[]方法之间还有一个巨大的差别,那就是loc[]里的参数是对应的索引值即可,所以参数可以是整数,也可以是字符串。而iloc[]里的参数表示的是第几行的数据,所以只能是整数。可以参考:
Pandas可以使用某一列来重新自定义DataFrame的索引,通过set_index()方法来实现,该方法主要有两个参数:
import pandas as pddf1=pd.DataFrame({ 'name':['kate','herz','catherine','sally'], 'age':[25,28,39,35]})df2=pd.DataFrame({ 'name':['kate','herz','sally'], 'score':[70,60,90]})df=pd.merge(df1,df2,on="name")print(df)df3=df.set_index('name', inplace=False, drop=False)print(df3)
结果:
age name score0 25 kate 701 28 herz 602 35 sally 90 age name scorename kate 25 kate 70herz 28 herz 60sally 35 sally 90
转载地址:http://pggli.baihongyu.com/