首页 > 解决方案 > 将变量转换为 timedelta 但以天而不是时间为单位

问题描述

我有一个数据框,我想将整数转换为天数。到目前为止,我只是将其更改为 timedelta[64]。但是,它涉及时间因素。我不在乎时间,如果可能的话希望它转换为天。如果需要保留时间,那没关系,只要它改变了日子

我的代码:

df['Date_Numerical_Delta'] = df_1sNA['Date_Numerical'].astype('timedelta64[ns]')

样本输入:



df = pd.DataFrame({'Date_Numerical': [5, 194, 163], 'Date_Numerical_Delta': ['0 days 00:00:00.000000005', '0 days 00:00:00.000000194','0 days 00:00:00.000000163']}) 
df

期望的输出:

df2 = pd.DataFrame({'Date_Numerical': [5, 194, 163], 'Date_Numerical_Delta': ['5 days', '194 days', '163 days']})
df2 

或者

df3 = pd.DataFrame({'Date_Numerical':       [5, 194, 163], 
                   'Date_Numerical_Delta': ['5 days 00:00:00.000000000', '194 days 00:00:00.000000000', '163 days 00:00:00.000000000']})
df3 

标签: pythonpandas

解决方案


简单完成。从评论:

df['Date_Numerical_Delta'] = pd.to_timedelta(df["Date_Numerical"], unit="D")

推荐阅读