2 回答

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
看起來(lái)當(dāng)您將列表傳遞到數(shù)據(jù)幀上的 loc 或 iloc 時(shí),將始終返回?cái)?shù)據(jù)幀(請(qǐng)注意,這df['date'] == '20180924'是一個(gè)布爾值列表)。
type(df.loc[df['date'] == '20180924']) = pandas.core.frame.DataFrame
type(df.loc[[0]]) = pandas.core.frame.DataFrame
type(df.iloc[[0]]) = pandas.core.frame.DataFrame
但是,如果您將索引(假設(shè)您的數(shù)據(jù)幀不是多索引)傳遞到數(shù)據(jù)幀上的 loc 或 iloc 中,則會(huì)產(chǎn)生一個(gè)系列:
type(df.loc[0]) = pandas.core.series.Series
type(df.iloc[0]) = pandas.core.series.Series
df.loc[0]并且df.iloc[0]是相同的(盡管情況并非總是如此,請(qǐng)參閱此處的原因)。這是結(jié)果:
date 20180926
price 100
Name: 0, dtype: object
同樣,如果您將索引傳遞給系列上的 iloc,它將產(chǎn)生一個(gè)標(biāo)量(即返回一個(gè)值):
type(df.iloc[0].iloc[0])
在這種情況下,您將選擇系列中的第 0 個(gè)定位元素df.iloc[0],即'20180926'. 請(qǐng)注意,調(diào)用df.iloc[0].loc[0]無(wú)效,因?yàn)?0 不是本系列中的索引。df.iloc[0]系列中的指數(shù)是日期和價(jià)格。

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
使用[]將返回pd.Series
a['date'][2]
Out[257]: '20180924'
a.iloc[0]['date']
Out[258]: '20180924'
a.loc[2,'date']
Out[259]: '20180924'
添加回答
舉報(bào)