Форум сайта python.su
Всем привет!
Есть несколько таблиц, в одной даты (каждый день за год) и какие-то числа, в другой - даты (определенные, не за каждый день года, но входящие в множество дат первой таблицы) и также какие-то числа.
Задача: на выходе получить одну таблицу, где есть даты за год (каждый день), и добавлен столбец с числами со второй таблицы, соответствующим датам. Не подскажите, как это можно сделать в пандас? Читал их гайд по объединению таблиц, но что-то не смог сам получить нужного результата.
Я только начинаю использовать python, так что извините за вероятно глупые вопросы Спасибо!
Офлайн
Можно без pandas это сделать. pandas - это сторонний пакет, довольно не интуитивный.
Офлайн
py.user.nextНу можно и без пандас, я открыт для всех вариантов!
Можно без pandas это сделать. pandas - это сторонний пакет, довольно не интуитивный.
Офлайн
Приведи конкретный пример входных таблиц и выходной таблицы, которая получится для этих входных таблиц.
Офлайн
py.user.nextВот как на картинке пример
Приведи конкретный пример входных таблиц и выходной таблицы, которая получится для этих входных таблиц.
Офлайн
ubakuevПреобразование понятно. В каком формате таблицы хранятся?
Вот как на картинке пример
Офлайн
Используя 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
Офлайн
Тут пример сделал по инфе от 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')
Прикреплённый файлы:
pantables.tar.bz2 (478 байт)
Офлайн
py.user.nextСпасибо всем большое! Благодаря вам все получилось!)
Тут пример сделал по инфе от scidam
Офлайн