Вы не указали, как вы хотите обрабатывать дубликаты, но чтобы получить минимум / максимум, вы можете использовать следующее:
import pandas as pd
df = pd.DataFrame(
[
{"name": "name1", "date_1": 11},
{"name": "name1", "date_2": 12},
{"name": "name1", "date_3": 43},
{"name": "name2", "date_1": 12},
],
columns=["name", "date_1", "date_2", "date_3"],
)
df.groupby('name').max().reset_index()
, что дает:
name date_1 date_2 date_3
0 name1 11.0 12.0 43.0
1 name2 12.0 NaN NaN
Литерал является "любой нотацией для [1 125] представление значение в исходном коде" (, Википедия )
(Контрастируют это с [1 110] идентификаторы , которые относятся к значению в памяти.)
Примеры:
"hey"
(строка) false
(булевская переменная) 3.14
(вещественное число) [1,2,3]
(список чисел) (x) => x*x
(функция) /^1?$|^(11+?)\1+$/
(regexp) Некоторые вещи, которые не являются литералами:
std::cout
(идентификатор) foo = 0;
(оператор) 1+2
(выражение) Литерал является присвоением на явное значение, такой как
int i = 4; // i is assigned the literal value of '4'
int j = i // j is assigned the value of i. Since i is a variable,
//it can change and is not a 'literal'
РЕДАКТИРОВАНИЕ: Как указано, само присвоение не имеет никакого отношения к определению литерала, я использовал присвоение в своем примере, но литерал может также быть передан в метод, и т.д.
Литерал является значением, которое было трудно кодировано непосредственно в Ваш источник.
, Например:
string x = "This is a literal";
int y = 2; // so is 2, but not y
int z = y + 4; // y and z are not literals, but 4 is
int a = 1 + 2; // 1 + 2 is not a literal (it is an expression), but 1 and 2 considered separately are literals
Некоторые литералы могут иметь специальный синтаксис, таким образом, Вы знаете то, что вводит литерал:
//The 'M' in 10000000M means this is a decimal value, rather than int or double.
var accountBalance = 10000000M;
то, Что устанавливает их кроме переменных или ресурсов, - то, что компилятор может рассматривать их как константы или выполнить определенную оптимизацию с кодом, где они используются, потому что бесспорно, что они не изменятся.
Литерал - при включении значения в исходный код (в противоположность ссылке на переменную или константу). Например:
int result = a + 5; // a is a variable with a value, 5 is a literal
string name = "Jeff Atwood"; // name is a variable initialized
// with the string literal, "Jeff Atwood"
int[] array = new int[] {1, 2, 3}; // C# has array literals (this is actually three
// int literals within an array literal)
, Если литерал представляет некоторое количество, как физическая постоянная, лучше дать ему имя вместо того, чтобы писать тот же литерал везде, Вам нужен он. Тот путь при чтении исходного кода Вы знаете то, что номер означает , который обычно более важен, чем его значение (который мог измениться так или иначе).
const int maxUsers = 100;
const double gravitationalAcceleration = 9.8;
Обычно единственные числовые литералы я использую (кроме того, для инициализации констант как вышеупомянутый), 0 или 1, и иногда 2, если я пропускаю любой объект в цикле. Если значение из числа более важно, чем его фактическое значение (это обычно), его лучше для именования его.
Литеральное значение значение, но значение могло также быть сохранено в переменной. В операторе
string str = "string literal";
существует строковая переменная (ул.) и строковый литерал. После того, как оператор выполняется, у них обоих есть то же значение.
знать, что на многих языках переменная и литеральное значение должны не обязательно даже быть тем же типом. Например:
int a = 1.0;
литеральное значение выше является типом с плавающей точкой. Значение будет принуждено компилятором для вписывания в международную переменную.
Для другого примера, в первой строке кода C++ выше типа строкового литерала не на самом деле тип string
библиотеки вообще. Для поддержания назад совместимости с C строковые литералы в C++ являются массивами символов.
Литерал - при помещении его в код. Таким образом, строковый литерал
string s = "SomeText";
, Это в противоположность созданию строки или принятию его в качестве параметра.
Быстрый пример:
интервал my_int_var = 723;
723 - Этот набор символов относится к литерал целочисленное значение.
my_int_var - Этот набор символов относится к переменная целочисленное значение.
Я услышал, что строковые литералы раньше небрежно относились к тому, что спецификация C# на самом деле называет дословными строковыми литералами. Регулярный строковый литерал допускает выход определенных символов (снабженный префиксом a), как \t для вкладки. Дословный строковый литерал предварительно ожидается и обработал дословно, \не имеет никакого особого значения.
//regular
string regular = "\thello world";
//verbatim
string verbatim = @"C:\";
//the regular equivalent of this would be "C:\\"
Обычно, когда кто-то использует литерал слова, они означают, что значение разборчиво из кода (текст) как показано во многих примерах в других сообщениях.
Другое общее использование для значений, которые преобразовываются в непосредственные значения в блоке. Это значения, которые вставляются непосредственно в машинную команду вместо того, чтобы требовать загрузок регистра.