Фильтрация имен файлов с двумя или более расширениями файлов

DSM имеет принятый ответ, но в этом ответе немного ошибочно (я не уверен, что ответ когда-либо работал в готовом виде). Вот пример, который работает с текущей версией pandas (0.23.4 с 8/2018):

import pandas as pd

df = pd.DataFrame({'col1': [1, 2, 2, 3, 1],
            'col2': ['negative', 'positive', 'neutral', 'neutral', 'positive']})

conversion_dict = {'negative': -1, 'neutral': 0, 'positive': 1}
df['converted_column'] = df['col2'].replace(conversion_dict)

print(df.head())

Вы увидите, что это выглядит так:

   col1      col2  converted_column
0     1  negative                -1
1     2  positive                 1
2     2   neutral                 0
3     3   neutral                 0
4     1  positive                 1

Документы для pandas.DataFrame.replace здесь .

0
задан Christopher Haumann 5 March 2019 в 17:00
поделиться

1 ответ

Если под расширениями файла вы подразумеваете количество периодов в имени файла, вы можете просто посчитать '.' символ в каждом имени файла. Например:

var myFilenames = new[] { "pic.jpng", "manuel.pdf", "manuel.pdf.exe" };
var twoOrMoreExtensions = myFilenames.Where(f => f.Count(x => x == '.') >= 2);
foreach (var filename in twoOrMoreExtensions)
{
    Console.WriteLine(filename);
}

запишет:

manuel.pdf.exe

Как уже указывалось в комментариях, если вы включите pic_21.03.2007_.jpng, это будет иметь «3 расширения» на основе этого правила.

0
ответ дан Owen Pauling 5 March 2019 в 17:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: