2016-10-04 135 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! –

相关问题