2016-10-04 136 views
1

我知道下面的命令可以幫助更改列類型:pandas函數是否以「內聯」方式更改列類型?

df['date'] = str(df['date']) 

df['A'] = pd.to_datetime(df['A']) 

df['A'] = df.A.astype(np.datetime64) 

但你知道更好的方式來改變列類型的內嵌方式,使其在一個符合這樣的其他聚合命令如下作爲GROUPBY,dropna等。例如:

df\ 
#.function to cast df.A to np.datetime64 \ 
.groupby('C') \ 
.apply(lambda x: x.set_index('A').resample('1M').sum()) 
+0

第一個示例可能不屬於此處,因爲它不會更改dtype。 – ayhan

+0

另外,您可能需要檢查[pd.Grouper](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Grouper.html)以避免臨時設置索引並使用resample。 – ayhan

+0

用第一個例子忍受我。你是對的,後面的例子有一些錯誤的做resample,因爲它創建新的索引,我試圖刪除inow .. –

回答

2

您可以使用assign

df.assign(A=pd.to_datetime(df['A'])) 

df = pd.DataFrame({'A': ['20150101', '20140702'], 'B': [1, 2]}) 
df 
Out: 
      A B 
0 20150101 1 
1 20140702 2 

df.assign(A=pd.to_datetime(df['A'])) 
Out: 
      A B 
0 2015-01-01 1 
1 2014-07-02 2 
+0

這正是我要找的!感謝Ayhan! –

相關問題