将数据帧中所有列的timedelta更改为整数

时间:2019-04-30 07:16:19

标签: python pandas

我有一个带有各种属性(时间增量,数字,日期等)列的数据框,是否可以将具有时间增量数据的数据框列替换为数值数据?

我的数据如下:

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

1 个答案:

答案 0 :(得分:1)

DataFrame.select_dtypesSeries.dt.daysDataFrame.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