Уведомления

Группа в Telegram: присоединиться

#1 Сен. 15, 2018 18:15:24

ubakuev
Зарегистрирован: 2018-09-15
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Объединение таблиц (столбцов) в Python в соответствии с датами

Всем привет!
Есть несколько таблиц, в одной даты (каждый день за год) и какие-то числа, в другой - даты (определенные, не за каждый день года, но входящие в множество дат первой таблицы) и также какие-то числа.

Задача: на выходе получить одну таблицу, где есть даты за год (каждый день), и добавлен столбец с числами со второй таблицы, соответствующим датам. Не подскажите, как это можно сделать в пандас? Читал их гайд по объединению таблиц, но что-то не смог сам получить нужного результата.

Я только начинаю использовать python, так что извините за вероятно глупые вопросы Спасибо!

Офлайн

#2 Сен. 16, 2018 03:14:16

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 5846
Репутация: +  533  -
Профиль   Отправить e-mail  

Объединение таблиц (столбцов) в Python в соответствии с датами

Можно без pandas это сделать. pandas - это сторонний пакет, довольно не интуитивный.



Офлайн

#3 Сен. 16, 2018 12:32:28

ubakuev
Зарегистрирован: 2018-09-15
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Объединение таблиц (столбцов) в Python в соответствии с датами

py.user.next
Можно без pandas это сделать. pandas - это сторонний пакет, довольно не интуитивный.
Ну можно и без пандас, я открыт для всех вариантов!

Офлайн

#4 Сен. 16, 2018 12:54:49

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 5846
Репутация: +  533  -
Профиль   Отправить e-mail  

Объединение таблиц (столбцов) в Python в соответствии с датами

Приведи конкретный пример входных таблиц и выходной таблицы, которая получится для этих входных таблиц.



Офлайн

#5 Сен. 16, 2018 15:34:32

ubakuev
Зарегистрирован: 2018-09-15
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Объединение таблиц (столбцов) в Python в соответствии с датами

py.user.next
Приведи конкретный пример входных таблиц и выходной таблицы, которая получится для этих входных таблиц.
Вот как на картинке пример

Офлайн

#6 Сен. 17, 2018 00:31:45

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 5846
Репутация: +  533  -
Профиль   Отправить e-mail  

Объединение таблиц (столбцов) в Python в соответствии с датами

ubakuev
Вот как на картинке пример
Преобразование понятно. В каком формате таблицы хранятся?

Надо из этого формата ввести в питон, преобразовать в питоне и вывести результат обратно в тот же формат. Формат CSV бы подошёл. Также SQLite можно использовать для подобных преобразований, там можно прямо в памяти работать, без создания файла.



Офлайн

#7 Сен. 17, 2018 05:09:56

scidam
Зарегистрирован: 2016-06-15
Сообщения: 284
Репутация: +  35  -
Профиль   Отправить e-mail  

Объединение таблиц (столбцов) в Python в соответствии с датами

Используя Pandas вы можете получить нужный результат в одну строку:

 import pandas as pd
a = pd.DataFrame({'x': [1,2,3], 'y' : ['one', 'two', 'three']})
b = pd.DataFrame({'x': [1, 3], 'f' : ['so', 'to']}) 
pd.merge(a,b, on='x', how='outer')  # merge by x-column, u can use date column instead. 
# set of data frames (tables)
from functools import reduce # isn't  needed in Python 2.x
# merge = lambda x, y: pd.merge(x, y, on='common_column_name', how='outer')
#example
c = pd.DataFrame({'x': [2, 3],  'c': [8, 9]})
merge = lambda x, y: pd.merge(x, y, on='x', how='outer')
merged_df = reduce(merge, [a ,b, c]) # merge all dfs at once











Офлайн

#8 Сен. 17, 2018 05:59:49

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 5846
Репутация: +  533  -
Профиль   Отправить e-mail  

Объединение таблиц (столбцов) в Python в соответствии с датами

Тут пример сделал по инфе от scidam

  
#!/usr/bin/env python3
 
import pandas as pd
 
a = pd.read_csv('file1.csv')
b = pd.read_csv('file2.csv')
c = pd.merge(a, b, on='Date', how='outer')
c.to_csv('file3.csv', index=False, line_terminator='\r\n')



Прикреплённый файлы:
attachment pantables.tar.bz2 (478 байт)

Офлайн

#9 Сен. 19, 2018 00:25:36

ubakuev
Зарегистрирован: 2018-09-15
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Объединение таблиц (столбцов) в Python в соответствии с датами

py.user.next
Тут пример сделал по инфе от scidam
Спасибо всем большое! Благодаря вам все получилось!)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version