Доступ к одной ячейке фрейма данных pandas?

#python #numpy #pandas

#python #numpy #pandas

Вопрос:

У меня есть следующие данные с некоторыми отсутствующими отверстиями. Я просмотрел «как обрабатывать недостающие данные», но не могу найти ничего, что применимо в этой ситуации. Вот данные:

           Species GearUsed  AverageFishWeight(lbs) NormalRange(lbs)  Caught  
0   BlackBullhead  Gillnet                    0.11          0.8-7.7    0.18   
1    BlackCrappie  Trapnet                    6.22          0.7-3.4    0.30   
2             NaN  Gillnet                    1.00          0.6-3.5    0.30   
3        Bluegill  Trapnet                   11.56         6.1-46.6    0.14   
4             NaN  Gillnet                    1.44              NaN    0.21   
5   BrownBullhead  Trapnet                    0.11          0.4-2.1    1.01   
6    NorthernPike  Trapnet                    0.22              NaN    4.32   
7             NaN  Gillnet                    2.22         3.5-10.5    5.63   
8     Pumpkinseed  Trapnet                    0.89          2.0-8.5    0.23   
9        RockBass  Trapnet                    0.22          0.5-1.8    0.04   
10        Walleye  Trapnet                    0.22          0.3-0.7    0.28   
11            NaN  Gillnet                    1.56          1.3-5.0    2.54   
12    WhiteSucker  Trapnet                    0.33          0.3-1.4    2.76   
13            NaN  Gillnet                    1.78          0.5-2.7    1.32   
14    YellowPerch  Trapnet                    1.33          0.5-3.3    0.14   
15            NaN  Gillnet                   27.67         3.4-43.6    0.14   
  

Мне нужно, чтобы NAN в столбце species были просто именем над ним, например, строка 2 будет BlackCrappie. Я хотел бы выполнить итерацию по фрейму и вручную указать название вида, но я не слишком уверен в том, как это сделать, а также в других ответах рекомендуется в первую очередь не выполнять итерацию по фрейму данных.

Как мне получить доступ к каждой ячейке фрейма по отдельности? Спасибо!

PS имена столбцов неверны, нет желтого окуня весом 27 фунтов. 🙂

Комментарии:

1. Чтобы повторить, к чему, вероятно, приводили другие ответы: вам действительно нужно перебирать фрейм, или вы просто думаете , что вам нужно перебирать фрейм, чтобы исправить NAN? Потому что здесь нет необходимости.

2. Мне действительно нужно исправить NAN, потому что это будет храниться в базе данных sql, если вы это имеете в виду, в противном случае нет, я не вижу, как pandas или numpy могут это исправить. Однако я новичок в фреймах данных. Спасибо DSM.

3. Дело в том, что с pandas помощью вы хотите сделать как можно больше, используя быстрые встроенные операции, а не переходя по элементам. В этом случае, используя fillna , как продемонстрировал CT Zhu (и вы можете выбрать определенные столбцы или изменить алгоритм заполнения.)

4. DSM на месте, кроме того, подумайте df['Species']=df.Species.fillna(method='pad') , хотите ли вы просто заполнить строку названия вида.

Ответ №1:

Вы хотите заполнить недостающие значения и в других строках? Кажется, для чего fillna() :

 In [83]:

print df.fillna(method='pad')
          Species GearUsed  AverageFishWeight(lbs) NormalRange(lbs)  Caught
0   BlackBullhead  Gillnet                    0.11          0.8-7.7    0.18
1    BlackCrappie  Trapnet                    6.22          0.7-3.4    0.30
2    BlackCrappie  Gillnet                    1.00          0.6-3.5    0.30
3        Bluegill  Trapnet                   11.56         6.1-46.6    0.14
4        Bluegill  Gillnet                    1.44         6.1-46.6    0.21
5   BrownBullhead  Trapnet                    0.11          0.4-2.1    1.01
6    NorthernPike  Trapnet                    0.22          0.4-2.1    4.32
7    NorthernPike  Gillnet                    2.22         3.5-10.5    5.63
8     Pumpkinseed  Trapnet                    0.89          2.0-8.5    0.23
9        RockBass  Trapnet                    0.22          0.5-1.8    0.04
10        Walleye  Trapnet                    0.22          0.3-0.7    0.28
11        Walleye  Gillnet                    1.56          1.3-5.0    2.54
12    WhiteSucker  Trapnet                    0.33          0.3-1.4    2.76
13    WhiteSucker  Gillnet                    1.78          0.5-2.7    1.32
14    YellowPerch  Trapnet                    1.33          0.5-3.3    0.14
15    YellowPerch  Gillnet                   27.67         3.4-43.6    0.14
  

Комментарии:

1. Нет, только столбец species, потому что заполнение значений данных неточно. Я думаю, что я понял это отсюда, спасибо! Я отмечу через несколько минут.

2. Ха, только что прокомментировал это 4 секунды назад в OP.

3. Да, много быстрых ответов! Даже не могу идти в ногу! Спасибо!