CD_FARE MTH DAY ID_CALENDAR H0 H1 H2 H3 PE1 PE2 PE3 PE4
2.0 1 M Cal01 1 2 1 3 0.14 0.15 0.1 0.2
2.0 1 T Cal01 1 2 1 3 0.14 0.16 0.1 0.2
2.0 1 W Cal01 1 2 4 3 0.14 0.12 0.1 0.2
2.0 1 T Cal01 2 2 1 3 0.14 0.11* 0.1 0.2
2.0 1 F Cal01 4 2 1 3 0.14 0.18 0.1 0.2
我想知道如何从特定单元格中获取值。
例如:我想返回值0.11。 我知道行的位置(在本例中为3),以及列的名称(PE2)。 我可以这样选择数据吗?:
data = df.iloc[3, 'PE2']
答案 0 :(得分:2)
显然它不起作用,它给出了一个ValueError
ValueError: Location based indexing can only have [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array] types
但是,如果您使用df.loc[3, 'PE2']
代替iloc
方法,则可以使用
答案 1 :(得分:0)
如果需要按位置选择需要Series.iloc
:
print (df['PE2'].iloc[3])
0.11
样品:
df = pd.DataFrame({'PE2':[1,2,3],
'B':[4,5,6]}, index=['a','b','c'])
print (df)
B PE2
a 4 1
b 5 2
c 6 3
#third row in colum PE2
print (df['PE2'].iloc[2])
3
#index value c and column PE2
print (df.ix['c','PE2'])
3
#index value c and column PE2
print (df.loc['c','PE2'])
3
#third row and second column
print (df.iloc[2,1])
3
但如果需要按索引和列值选择,请使用ix
或DataFrame.loc
:
df = pd.DataFrame({'PE2':[1,2,3],
'B':[4,5,6]})
print (df)
B PE2
0 4 1
1 5 2
2 6 3
print (df.loc[2, 'PE2'])
3
print (df.ix[2, 'PE2'])
3
您还可以在selection by label中查看selection by position和pandas documentation。