我有一个带有各种属性(时间增量,数字,日期等)列的数据框,是否可以将具有时间增量数据的数据框列替换为数值数据?
我的数据如下:
import pandas as pd
df = pd.DataFrame({'a':[1,5,10]\
,'business':['FRC','FRC','FRC']\
,'b':[2,3,4]\
,'c':[1,2,3]})
df['a']=pd.to_timedelta(df['a'],unit='d')
df['b']=pd.to_timedelta(df['b'],unit='d')
df.dtypes
我想将所有列都更改为numeric。 注意:我的列名不断变化。
Ed
答案 0 :(得分:1)
将DataFrame.select_dtypes
与Series.dt.days
和DataFrame.apply
结合使用:
c = df.select_dtypes('timedelta').columns
df[c] = df[c].apply(lambda x: x.dt.days)
print (df)
a business b c
0 1 FRC 2 1
1 5 FRC 3 2
2 10 FRC 4 3