2017-02-16 22 views
1

У меня есть dataframe df с X столбцами. Я хочу заполнить df ['date'] и df ['time'] подстрокой, расположенной внутри столбца df ['job.filename']. Я попытался преобразовать серию в список, а затем захватить список [х: у] = даты, а такжеgrab substring in pandas series

for i,row in df.iterrows(): df.set_value(i,'time',row['job.filename'][-10:-4]) df.set_value(i,'date',row['job.filename'][21:27])

Но это не сработало Приветствия

+0

Вы можете разместить фрагмент job.file и что часть подстроки вам нужно извлечь? – Vaishali

+0

df ['job.filename] [0] =' Список IMAT 1-3609-0-20161214-092934.csv '. Я хочу использовать цифры 6 и 8 цифр – Sylvain

ответ

1

Я взял ваш образец job.filename создать dataframe и попытался следующее:

df = pd.DataFrame(['IMAT list 1-3609-0-20161214-092934.csv']) 
df['date'] = df[0].str.extract('.*-\d+-(\d+)-\d+') #0 is the column name, in your case job.filename 
df['time'] = df[0].str.extract('.*-\d+-\d+-(\d+)') 

Вы получаете:

0          date  time 

0 Список IMAT 1-3609-0-20161214-092934.csv 20161214 092934

Это регулярное выражение будет работать только тогда, когда все значения следуют точный шаблон

+0

Я получаю ошибку атрибута: объект DataFrame 'не имеет атрибута' str ' – Sylvain

+0

На какой строке? Вы можете это точно сказать? – Vaishali

+0

Мой плохой, формат был модифицированным эйлером в моем коде по дате. Это работает, однако две строки дают мне дату. Что это за обозначения '('. * - \ d + - \ d + - (\ d +) ')? Где я могу найти документацию? – Sylvain