Найти - Пользователи
Полная версия: Объединение таблиц (столбцов) в Python в соответствии с датами
Начало » Python для новичков » Объединение таблиц (столбцов) в Python в соответствии с датами
1
ubakuev
Всем привет!
Есть несколько таблиц, в одной даты (каждый день за год) и какие-то числа, в другой - даты (определенные, не за каждый день года, но входящие в множество дат первой таблицы) и также какие-то числа.

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

Я только начинаю использовать python, так что извините за вероятно глупые вопросы Спасибо!
py.user.next
Можно без pandas это сделать. pandas - это сторонний пакет, довольно не интуитивный.
ubakuev
py.user.next
Можно без pandas это сделать. pandas - это сторонний пакет, довольно не интуитивный.
Ну можно и без пандас, я открыт для всех вариантов!
py.user.next
Приведи конкретный пример входных таблиц и выходной таблицы, которая получится для этих входных таблиц.
ubakuev
py.user.next
Приведи конкретный пример входных таблиц и выходной таблицы, которая получится для этих входных таблиц.
Вот как на картинке пример
py.user.next
ubakuev
Вот как на картинке пример
Преобразование понятно. В каком формате таблицы хранятся?

Надо из этого формата ввести в питон, преобразовать в питоне и вывести результат обратно в тот же формат. Формат CSV бы подошёл. Также SQLite можно использовать для подобных преобразований, там можно прямо в памяти работать, без создания файла.
scidam
Используя 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











py.user.next
Тут пример сделал по инфе от 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')
ubakuev
py.user.next
Тут пример сделал по инфе от scidam
Спасибо всем большое! Благодаря вам все получилось!)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB