Объявления, определения, инициализации в C, C++, C#, Java и [закрытом] Python

IIUC, вы хотите использовать другие значения в DataFrame для заполнения пропущенных значений. Вы можете сделать это с помощью map.

Во-первых, сгенерируйте почтовые индексы для сопоставления серий в город.

mapping = (df.query('Borough != "Unspecified"')
             .drop_duplicates('Incident Zip')
             .set_index('Incident Zip')
             .Borough)
mapping

Incident Zip
11374       QUEENS
11420       QUEENS
10467        BRONX
11230    MANHATTAN
10028    MANHATTAN
11385       QUEENS
Name: Borough, dtype: object

Теперь передайте это map и заполните несопоставленные значения как «Unspecified», используя fillna.

df['Borough'] = df['Incident Zip'].map(mapping).fillna('Unspecified')

df
             Created Date    Complaint Type  Incident Zip    Borough
0  09/14/2017 04:40:33 PM  New Tree Request         11374     QUEENS
1  03/18/2017 10:09:57 AM  General Construc         11420     QUEENS
2  03/29/2017 12:38:28 PM  General Construc         11230  MANHATTAN
3  06/05/2017 12:47:55 PM  New Tree Request         10028  MANHATTAN
4  06/15/2017 11:56:36 AM   Dead/Dying Tree         10467      BRONX
5  06/19/2017 10:30:46 AM  New Tree Request         11230  MANHATTAN
6  06/29/2017 09:25:59 AM  New Tree Request         10028  MANHATTAN
7  07/01/2017 12:23:20 PM      Damaged Tree         10467      BRONX
8  07/01/2017 11:47:03 AM      Damaged Tree         10467      BRONX
9  07/10/2017 10:27:37 AM  General Construc         11385     QUEENS
10
задан Mat 23 September 2012 в 13:14
поделиться

1 ответ

C/C++:

Объявление является оператором, который говорит, "вот название чего-то и тип вещи, которая это, но я не говорю Вам ничего больше об этом".

Определением является оператор, который говорит, "вот название чего-то и каково точно это". Для функций это было бы телом функции; для глобальных переменных это было бы единицей перевода, в которой находится переменная.

Инициализация является определением, где переменной также дают начальное значение. Некоторые языки автоматически инициализируют все переменные к некоторому значению по умолчанию такой как 0, ложь или пустой указатель. Некоторые (как C/C++) не делают во всех случаях: все глобальные переменные инициализируются значением по умолчанию, но локальные переменные на стеке и динамично выделенные переменные на "куче" НЕ являются инициализированным значением по умолчанию - у них есть неопределенное содержание, таким образом, необходимо явно инициализировать их. C++ также имеет конструкторов по умолчанию, который является целой nother кучей проблем.

Примеры:


// In global scope:
extern int a_global_variable;  // declaration of a global variable
int a_global_variable;         // definition of a global variable
int a_global_variable = 3;     // definition & initialization of a global variable

int some_function(int param);  // declaration of a function
int some_function(int param)    // definition of a function
{
    return param + 1;
}

struct some_struct;  // declaration of a struct; you can use pointers/references to it, but not concrete instances
struct some_struct   // definition of a struct
{
    int x;
    int y;
};

class some_class;  // declaration of a class (C++ only); works just like struct
class some_class   // definition of a class (C++ only)
{
    int x;
    int y;
};

enum some_enum;  // declaration of an enum; works just like struct & class
enum some_enum   // definition of an enum
{
   VALUE1,
   VALUE2
};

Я не так знаком с другими языками, о которых Вы спросили, но я полагаю, что они не делают большую часть различия между объявлениями и определениями. C# и Java имеют инициализацию по умолчанию для всех объектов - все инициализируется к 0, ложь или пустой указатель, если Вы явно не инициализируете его. Python еще более слаб, так как переменные не должны быть объявлены, прежде чем они будут использоваться. Так как привязка разрешена во времени выполнения, нет никакой реальной потребности в объявлениях функций, также.

11
ответ дан 4 December 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: