2017-04-18 120 views
2

即)熊貓排序coloumn值

 count 
2015-01 2 
2015-02 1 
2015-03 4 

用於我試圖pd.groupby(B組,通過= [b.index.month,b.index.year])

但有對象有沒有屬性 '月' 錯誤

+1

是否與實際日期對象或字符串? – piRSquared

+0

日期在dataframe對象中是coloumn –

回答

1

應用sortedkey參數設置爲pd.to_datetime

df.assign(date=df.date.apply(sorted, key=pd.to_datetime)) 

    id         date 
0 a    [2015-02-01, 2015-03-01] 
1 b       [2015-03-01] 
2 s    [2015-01-01, 2015-03-01] 
3 f [2015-01-01, 2015-01-01, 2015-03-01] 

然後使用pd.value_counts

pd.value_counts(pd.to_datetime(df.date.sum()).strftime('%Y-%m')) 

2015-03 4 
2015-01 3 
2015-02 1 
dtype: int64 

調試

你應該能夠複製並粘貼此代碼...請驗證其運行正常。

import pandas as pd 

df = pd.DataFrame(dict(
     id=list('absf'), 
     date=[ 
      ['2015-03-01', '2015-02-01'], 
      ['2015-03-01'], 
      ['2015-01-01', '2015-03-01'], 
      ['2015-01-01', '2015-01-01', '2015-03-01'] 
     ] 
    ))[['id', 'date']] 

print(df.assign(date=df.date.apply(sorted, key=pd.to_datetime))) 
print() 
print(pd.value_counts(pd.to_datetime(df.date.sum()).strftime('%Y-%m'))) 

你應該會看到

id         date 
0 a    [2015-02-01, 2015-03-01] 
1 b       [2015-03-01] 
2 s    [2015-01-01, 2015-03-01] 
3 f [2015-01-01, 2015-01-01, 2015-03-01] 

2015-03 4 
2015-01 3 
2015-02 1 
dtype: int64 
+0

我不明白問題是什麼?你顯示了一個數據幀'df'。你是否在'df'上運行這個代碼?你也沒有提供足夠的信息來說明發生了什麼。 – piRSquared

+0

@ d.doo查看我更新的答案的調試部分。 – piRSquared

+0

df.assign(dt = df.dt.apply(sorted,key = pd.to_datetime))有TypeError:無法識別的值類型:和ValueError:給定日期字符串不可能是日期時間。 –