2017-02-16 77 views
1

我有一個帶X列的數據框df。 我想用df ['job.filename']列中的子字符串填充df ['date']和df ['time']。 我試圖系列轉換成列表,然後搶列表[X:Y =日期,也在熊貓系列中抓取子串

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 list 1-3609-0-20161214-092934.csv'。我想使用6位和8位數字 – Sylvain

回答

1

我把你的樣品job.filename創建一個數據框和嘗試以下操作:

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

我的不好,這個格式在我的代碼中已經被datetime修改了。它的工作原理,但是兩行給我的日期。這是什麼符號'('。* - \ d + - \ d + - (\ d +)')?我在哪裏可以找到文檔? – Sylvain