Используйте методы groupby
и idxmax
:
date
в datetime
: df['date']=pd.to_datetime(df['date'])
max
столбца date
, после groupyby ad_id
: idx=df.groupby(by='ad_id')['date'].idxmax()
df_max=df.loc[idx,]
Out [54]:
ad_id price date
7 22 2 2018-06-11
6 23 2 2018-06-22
2 24 2 2018-06-30
3 28 5 2018-06-22
Вы можете удалить пробел пробела, установив bbox_inches="tight"
в savefig
:
plt.savefig("test.png",bbox_inches='tight')
Вам придется поместить аргумент в bbox_inches
в виде строки, возможно, именно поэтому он не работал раньше для вас.
Возможные дубликаты:
Графы Matplotlib: удаление оси, легенд и пробелов
Это работает для меня, сохраняя массив numpy, построенный с imshow в файл
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(10,10))
plt.imshow(img) # your image here
plt.axis("off")
plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0,
hspace = 0, wspace = 0)
plt.savefig("example2.png", box_inches='tight', dpi=100)
plt.show()
Я не могу утверждать, что я точно знаю, почему и как мое решение & rdquo; работает, но это то, что я должен был сделать, когда захотел составить схему нескольких секций аэрофотоснимков; без белых полей; в файл PDF. (Обратите внимание, что я использовал matplotlib внутри ноутбука IPython с флагом -pylab.)
gca().set_axis_off()
subplots_adjust(top = 1, bottom = 0, right = 1, left = 0,
hspace = 0, wspace = 0)
margins(0,0)
gca().xaxis.set_major_locator(NullLocator())
gca().yaxis.set_major_locator(NullLocator())
savefig("filename.pdf", bbox_inches = 'tight',
pad_inches = 0)
Я попытался деактивировать разные части этого, но это всегда приводит к получению белого поля. Возможно, вы даже модифицируете это, чтобы поддерживать живые линии вблизи пределов фигуры от побритости из-за отсутствия полей.
set_major_locator
.
– Florian Brucker
28 October 2015 в 18:54
pad_inches=0
, о котором другие ответы не упоминаются.
– Annan
16 May 2016 в 17:54
Я нашел что-то у Арвинда Перейры ( http://robotics.usc.edu/~ampereir/wordpress/?p=626 ) и, похоже, работал для меня:
plt.savefig(filename, transparent = True, bbox_inches = 'tight', pad_inches = 0)
transparent=True
создаст впечатление, что нет проблем, но он просто скроет пустое пространство, размеры изображения будут не в порядке.
– Vlady Veselinov
28 July 2018 в 16:34
Я нашел, что следующие коды отлично работают для задания.
fig = plt.figure(figsize=[6,6])
ax = fig.add_subplot(111)
ax.imshow(data)
ax.axes.get_xaxis().set_visible(False)
ax.axes.get_yaxis().set_visible(False)
ax.set_frame_on(False)
plt.savefig('data.png', dpi=400, bbox_inches='tight',pad_inches=0)
fig.savefig()
. (plt.savefig()
в этом случае не будет работать.) – Abhranil Das 21 April 2013 в 13:06bbox_inches
, появляется другое значение по умолчанию, которое оставляет некоторое пространство. Если вы действительно хотите избавиться от всего, вам также нужно использоватьpad_inches=0.0
. Конечно, такая плотная набивка часто срезается, например, экспоненты ... – Mike 19 December 2014 в 17:46pad_inches=-0.1
– lenhhoxung 12 October 2017 в 14:09