Veri çerçevemden tam olarak bir satır çıkaran bir koşul oluşturdum:
d2 = df[(df['l_ext']==l_ext) & (df['item']==item) & (df['wn']==wn) & (df['wd']==1)]
Şimdi belirli bir sütundan bir değer almak istiyorum:
val = d2['col_name']
Ancak sonuç olarak bir satır ve bir sütun (yani bir hücre) içeren bir veri çerçevesi elde ediyorum. İhtiyacım olan şey bu değil. Tek bir değere ihtiyacım var (bir kayan sayı). Bunu pandas'ta nasıl yapabilirim?
Yalnızca bir satıra sahip bir DataFrame'iniz varsa, iloc
kullanarak ilk (tek) satıra Seri olarak ve ardından sütun adını kullanarak değere erişin:
In [3]: sub_df
Out[3]:
A B
2 -0.133653 -0.030854
In [4]: sub_df.iloc[0]
Out[4]:
A -0.133653
B -0.030854
Name: 2, dtype: float64
In [5]: sub_df.iloc[0]['A']
Out[5]: -0.13365288513107493
Bunlar skalerlere hızlı erişim sağlar
In [15]: df = pandas.DataFrame(numpy.random.randn(5,3),columns=list('ABC'))
In [16]: df
Out[16]:
A B C
0 -0.074172 -0.090626 0.038272
1 -0.128545 0.762088 -0.714816
2 0.201498 -0.734963 0.558397
3 1.563307 -1.186415 0.848246
4 0.205171 0.962514 0.037709
In [17]: df.iat[0,0]
Out[17]: -0.074171888537611502
In [18]: df.at[0,'A']
Out[18]: -0.074171888537611502
Pandas 10.1/13.1'den sonraki değişikliklere benziyor
iloc mevcut olmadan önce 10.1'den 13.1'e yükselttim.
Şimdi 13.1 ile, iloc[0]['label']
bir skaler yerine tek bir değer dizisi alır.
Bunun gibi:
lastprice=stock.iloc[-1]['Close']
Çıktı:
date
2014-02-26 118.2
name:Close, dtype: float64