2016-09-19 107 views
0

我有一個日期時間pandas.Series。一列稱爲「日期」。我想讓'i'元素像字符串一樣循環。熊貓日期至字符串

s.apply(lambda x: x.strftime('%Y.%m.%d'))astype(str).tail(1).reset_index()['date']或許多其他解決方案不起作用。

我只是想喜歡'2016-09-16'(串聯的第一日期時間元素),而不是他目前正在恢復,這是一個字符串:

ss = series_of_dates.astype(str).tail(1).reset_index()['date'] 
"lol = %s" % ss 

lol = 0 2016-09-16\nName: date, dtype: object

我需要的只是:

lol = 2016-09-16

,因爲我需要

some string%A,B,S,d

.....沒有A,B,S甚至 '/ N' .. 。

+0

你可以發佈一些示例數據和所需的輸出?例如'print(s.head(10))'的輸出... – MaxU

回答

1

爲了提取的價值,你可以嘗試:

ss = series_of_dates.astype(str).tail(1).reset_index().loc[0, 'date'] 

使用loc會給你的內容就好。

1

我認爲你可以使用strftime的轉換datetimestring柱:

import pandas as pd 

start = pd.to_datetime('2015-02-24 10:00') 
rng = pd.date_range(start, periods=10) 

df = pd.DataFrame({'dates': rng, 'a': range(10)}) 
print (df) 
    a    dates 
0 0 2015-02-24 10:00:00 
1 1 2015-02-25 10:00:00 
2 2 2015-02-26 10:00:00 
3 3 2015-02-27 10:00:00 
4 4 2015-02-28 10:00:00 
5 5 2015-03-01 10:00:00 
6 6 2015-03-02 10:00:00 
7 7 2015-03-03 10:00:00 
8 8 2015-03-04 10:00:00 
9 9 2015-03-05 10:00:00 

s = df.dates 
print (s.dt.strftime('%Y.%m.%d')) 
0 2015.02.24 
1 2015.02.25 
2 2015.02.26 
3 2015.02.27 
4 2015.02.28 
5 2015.03.01 
6 2015.03.02 
7 2015.03.03 
8 2015.03.04 
9 2015.03.05 
Name: dates, dtype: object 

環路與Series.iteritems

for idx, val in s.dt.strftime('%Y.%m.%d').iteritems(): 
    print (val) 

    2015.02.24 
2015.02.25 
2015.02.26 
2015.02.27 
2015.02.28 
2015.03.01 
2015.03.02 
2015.03.03 
2015.03.04 
2015.03.05