2014-01-13 92 views
1

如何在做groupby之後用文件名連接日期的一部分。
我想用一個數組來結束: 「你好2014年1月2日」,「你好2014年1月2日」從groupby pandas的字符串的concat部分python

我的代碼的結果是一個驚喜。

import pandas as pd 
from datetime import datetime 
d = { 'File' : pd.Series(['hello', 'what']), 
    'Status' : pd.Series([0., 0.]), 
    'Error' : pd.Series([2., 2.]), 
    'AlertDays' : pd.Series([2., 2.]), 
    'Date' : pd.Series([datetime(2014, 1, 2), datetime(2014, 1, 2)])} 
df=pd.DataFrame(d) 
df['Date']=pd.to_datetime(df['Date']) 
Faildf=df[df.Status==0] 
Fx=Faildf.groupby('File')['Date'].max().reset_index() 
Fx['concat']=Fx['File'] +' '+ str(Fx['Date']) 
#FailArray=Fx['concat'].unique() 

爲什麼有多個日期...我以爲我通過做groupby和max失去了其他日期?結果:

>>> Fx 
    File    Date            concat 
0 hello 2012-05-02 00:00:00 0 2012-05-02 00:00:00\n1 2012-05-02 00:00:... 
1 what 2012-05-02 00:00:00 0 2012-05-02 00:00:00\n1 2012-05-02 00:00:... 

回答

1

的問題是,你是串聯一個熊貓系列Fx['File']與熊貓系列str(Fx['Date'])的字符串表示,你需要做的是應用str投功能的Fx['Date']這樣的元素是什麼:

>>> Fx['File'] + " " + Fx['Date'].apply(str) 
0 hello 2014-01-02 00:00:00 
1  what 2014-01-02 00:00:00