Уберите месяц и год из имени файла в Pandas - PullRequest
0 голосов
/ 15 октября 2019

enter image description here

Это мой набор данных, так что, ребята, вы можете помочь мне создать 2 новых столбца (то есть, месяц и год), который берет месяц и год из файлаимя и так далее, есть много файлов, содержащих весь месяц, поэтому, пожалуйста, помогите мне извлечь все имя месяца и года из имени файла и вставить его в новый столбец.

Ответы [ 2 ]

1 голос
/ 15 октября 2019

Год всегда в одном и том же месте - [-9:-5] - отсчитывает символы с конца строки.

Если вы разделите имя файла с помощью " ", вы получите список и месяц будет иметь индекс -2

import pandas as pd

df = pd.DataFrame({
    'filename':[
        "102 RB loss Chamdor June 2018.xlsx",
        "102 RB loss Chamdor Januray 2018.xlsx",
    ]})

df['year'] = df['filename'].str[-9:-5]
df['month'] = df['filename'].apply(lambda x:x.split(" ")[-2])

print(df)

Результат

                                filename  year    month
0     102 RB loss Chamdor June 2018.xlsx  2018     June
1  102 RB loss Chamdor Januray 2018.xlsx  2018  Januray

РЕДАКТИРОВАТЬ: как сказано @SpghttCd вместо apply() вы можете использовать

df['month'] = df['filename'].str.split().str[-2]

Если у вас есть более сложные имена, вы можете попробовать регулярное выражение

df['year'] = df['filename'].str.extract('(\d{4})')
df['month'] = df['filename'].str.extract('(June|Januray|names|of|other|months)')
1 голос
/ 15 октября 2019

Составьте список, в котором представлены все названия месяцев, и используйте функцию поиска, чтобы вычеркнуть название месяца. Чтобы получить год, используйте метод @furas.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...