Python или Excel: как вы можете сравнить 2 столбца, а затем записать значение 3-го столбца в новый столбец?

#python #excel #data-science

#python #excel #наука о данных

Вопрос:

У меня есть 2 таблицы, которые выглядят следующим образом:

Таблица 1

 | ID | Tel. |   Name  |
|:--:|:----:|:-------:|
| 1  | 1234 | Denis   |
| 2  | 4567 | Michael |
| 3  | 3425 | Peter   |
| 4  | 3242 | Mary    |
  

Таблица 2

 | ID | Contact Date |
|:--:|:------------:|
| 1  | 2014-05-01   |
| 2  | 2003-01-05   |
| 3  | 2020-01-10   |
| 4  | NULL         |
  

Теперь я хочу сравнить первую таблицу со второй таблицей со ID столбцом, чтобы посмотреть, есть ли contact 1 он уже в списке, с которым связывались люди. После этого я хочу записать Contact Date в первую таблицу, чтобы увидеть дату последнего контакта в главной таблице.

Как бы я это сделал?

Спасибо за любые ответы!!

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

1. vlookup() проверит наличие идентификатора в таблице 1 в таблице 2.

Ответ №1:

Вот решение, которое может вас заинтересовать, используя MySQL; Затем, если вы хотите, реализовать его в Python будет легко.

Сначала давайте создадим нашу T1 таблицу КАК ЗАКОДИРОВАННУЮ

 create table T1(
    id integer primary key,
    tel integer, 
    name varchar(100)
    );

create table T2(
    id integer primary key,
    contactDate date
    );
  

Вторая таблица T2

 create table T2(
    id integer primary key,
    contactDate date
    );
  

Вставка T1 И T2 :

 -- Table 'T1' Insertion

insert into T1(id, tel, name) VALUES 
    (1, 1234, "Denis"),
    (2, 4567, "Michael"),
    (3, 3425,"Peter"),
    (4, 3242, "Mary");

-- Table 'T2' Insertion              
              
insert into T2(id, contactDate) VALUES 
    (1, 20140105),
    (2, 20030105),
    (3, 20201001),
    (4, Null);    
  

Затем создайте T3 с помощью оператора Select для обеих таблиц, используя INNER JOIN For Joins Results
ВНУТРЕННЕЕ СОЕДИНЕНИЕ

 CREATE TABLE T3 AS
    SELECT T1.id, T1.name, T1.tel, T2.contactDate
    FROM T1
    INNER JOIN T2 ON T1.id=T2.id;
  

Затем, SELECT чтобы проверить результаты

select * from T3;

ВЫВОД

 | id |   name  | tel  | contactDate |
|:--:|:-------:|------|-------------|
| 1  | Denis   | 1234 | 2014-01-05  |
| 2  | Michael | 4567 | 2003-01-05  |
| 3  | Peter   | 3425 | 2020-10-01  |
| 4  | Mary    | 3242 | NULL        |
  

Надеюсь, это поможет. Я действительно пытался объединить T3 —> contactDate с T1 примерно на 3 часа. Но это был тяжелый процесс. Я приложу ссылки, которые могут помочь вам больше.

Ссылка

ВНУТРЕННЕЕ СОЕДИНЕНИЕ

Оператор SQL ALTER TABLE

SQL Server ВСТАВИТЬ несколько строк

ОБЗОР и примеры инструкции INSERT INTO SELECT

SQL ВСТАВИТЬ В оператор SELECT