Вы можете использовать np.repeat()
import pandas as pd
import numpy as np
# your data
# ========================
df
x count
0 d 2
1 e 3
2 f 2
# processing
# ==================================
np.repeat(df.values, df['count'].values, axis=0)
array([['d', 2],
['d', 2],
['e', 3],
['e', 3],
['e', 3],
['f', 2],
['f', 2]], dtype=object)
pd.DataFrame(np.repeat(df.values, df['count'].values, axis=0), columns=['x', 'count'])
x count
0 d 2
1 d 2
2 e 3
3 e 3
4 e 3
5 f 2
6 f 2
Проверьте этот экстрактор метаданных . <забастовка> Это записано в Java, но было также портировано к C#. я использовал версию Java для записи маленькой утилиты для переименования моих jpeg файлов на основе даты и образцовых тегов. Очень простой в использовании.
<час>РЕДАКТИРОВАНИЕ экстрактор метаданных .NET поддержек также. Это - очень быстрая и простая библиотека для доступа к метаданным из изображений и видео.
Это полностью поддерживает Exif, а также IPTC, XMP и много других типов метаданных от типов файлов включая JPEG, PNG, GIF, PNG, ICO, WebP, PSD...
var directories = ImageMetadataReader.ReadMetadata(imagePath);
// print out all metadata
foreach (var directory in directories)
foreach (var tag in directory.Tags)
Console.WriteLine($"{directory.Name} - {tag.Name} = {tag.Description}");
// access the date time
var subIfdDirectory = directories.OfType<ExifSubIfdDirectory>().FirstOrDefault();
var dateTime = subIfdDirectory?.GetDateTime(ExifDirectoryBase.TagDateTime);
Это доступно через NuGet и код GitHub.
Вот ссылка на другой подобна ТАК вопрос , который имеет ответ, указывающий на эту хорошую статью о "Чтение, пишущий и фото метаданные" в .NET.
Получение данные EXIF из изображения JPEG включает:
Класс изображения имеет свойства PropertyItems и PropertyIdList. Можно использовать их.
Как было предложено, вы можете использовать какую-нибудь стороннюю библиотеку или сделать это вручную (что не так уж и сложно), но самым простым и гибким является использование встроенных функций. в .NET. Подробнее см .:
System.Drawing.Image.PropertyItems Свойство
Я говорю: « гибкий », потому что .NET никоим образом не пытается интерпретировать или объединять данные. Для каждого EXIF вы в основном получаете массив байтов. Это может быть хорошо или плохо в зависимости от того, какой контроль вы действительно хотите.
Также я должен указать, что список свойств на самом деле не соответствует напрямую значениям EXIF. Сам EXIF хранится в нескольких таблицах с перекрывающимися идентификаторами, но. NET помещает все в один список и переопределяет идентификаторы некоторых элементов. Но если вам не важны точные идентификаторы EXIF, с сопоставлением .NET все будет в порядке.
Изменить: Это можно сделать без загрузки полного изображения после этого ответа: https://stackoverflow.com/a/552642/2097240[1220 impression