Получение значений из DataFrame - PullRequest
0 голосов
/ 24 мая 2018

Я использую Python 2.7 и pandas 0.20.3.

Подумайте о следующем простом коде данных.

import pandas as pd

days = ["Mon", "Tue", "Thu", "Fri"]
years = [2000, 2001, 2002, 2003, 2004]

x = [ #  Mon     Tue     Thu     Fri
        [26.16,  27.16,  25.69,  22.81],    # 2000   Row 1
        [20.75,  21.32,  18.20,  16.08],    # 2001   Row 2
        [16.42,  18.32,  18.59,  18.02],    # 2002   Row 3
        [14.56,  14.32,  13.85,  13.20],    # 2003   Row 4
        [21.02,  20.32,  20.78,  19.90]     # 2004   Row 5
    ] # Col1     Col2    Col3    Col4

df = pd.DataFrame(x, columns = days, index = years)
print df

Мне нужна помощь в следующем:

  1. Как напечатать 4-й столбец с начала, то есть, соответствующий Пт?
  2. Как напечатать 2-й ряд с конца, то есть, соответствующий 2003?
  3. Как перебрать данные каждой ячейки в мажорной строке?

1 Ответ

0 голосов
/ 24 мая 2018

Используйте iloc для выбора по позициям и iterrows, но, возможно, существуют более быстрые векторизованные альтернативы для вашей задачи, потому что это очень медленно :

#python counts from 0, so for 4.th column
a = df.iloc[:, 3]
print (a)
2000    22.81
2001    16.08
2002    18.02
2003    13.20
2004    19.90
Name: Fri, dtype: float64

#from back for second column
b = df.iloc[-2]
print (b)
Mon    14.56
Tue    14.32
Thu    13.85
Fri    13.20
Name: 2003, dtype: float64

for i, row in df.iterrows():
    print (i)
    print (row)

Если хотите выбрать по столбцам / индексным меткам:

a1 = df['Fri']
print (a1)
2000    22.81
2001    16.08
2002    18.02
2003    13.20
2004    19.90
Name: Fri, dtype: float64

b1 = df.loc[2003]
print (b1)
Mon    14.56
Tue    14.32
Thu    13.85
Fri    13.20
Name: 2003, dtype: float64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...