【非常重要】pandas的一维序列Series和二维表DataFrame的五种索引访问方式总结大全

mac2024-03-31  28

说明:位置索引----list索引访问方式 标签索引----dict索引访问方式  

关于DataFrame和Series的关系总结:

其中Series又具备了numpy中ndarray数组的特性以及dict的特性!

关于DataFrame和Series的关系总结: 其中Series又具备了numpy中ndarray数组的特性以及dict的特性! df = pd.DataFrame({"name": "aaa", "age": 18, "sex": "man", "height": 1.08}, index=pd.date_range("20190101", freq="D", periods=3)) print(df.values) ''' DataFrame内部就是二维Series列的组合,这也是为什么在访问DataFrame[列标签索引]的原因! [ ['aaa' 18 'man' 1.08] ['aaa' 18 'man' 1.08] ['aaa' 18 'man' 1.08] ] '''

总结Series的五种索引访问方式:

    由于Series是一个一维标签数组,所有at和loc等价,iat和iloc等价,都会获取单个值!

   Series具备list和dict的特性,可以直接Series[列标签索引或位置索引]访问    Series.at[行标签索引,列标签索引] == Series.loc[行标签索引,列标签索引]         访问行/列标签对的单个值。     Series.iat[行位置索引,列位置索引] == Series.iloc[行位置索引,列位置索引]         通过整数位置访问行/列对的单个值。总结DataFrame的五种索引访问方式:

    DataFrame.at[行标签索引,列标签索引]         访问行/列标签对的单个值。    DataFrame.iat[行位置索引,列位置索引]         通过整数位置访问行/列对的单个值。     DataFrame.loc[行标签索引,列标签索引]

df = pd.DataFrame([np.random.randint(1, 10, 4)], index=pd.date_range("20190101", freq="D", periods=10), columns=list('ABCD')) print(df) # 这种方式等价于print(df.loc["20190101",:]),选择一行所有的列! print(df.loc["20190101"])

        按标签访问一组行和列。     DataFrame.iloc[行位置索引,列位置索引]         按整数位置访问一组行和列。     >>>> 对象标签索引访问方式<<<<     dataFrame.列标签索引 或 dataFrame[列标签索引]

最新回复(0)