簡體   English   中英

將浮點值轉換為 pandas dataframe 中的 timedelta 值

[英]Converting float values to timedelta values in a pandas dataframe

我想將 dataframe 中的某些列轉換為 timedelta 值。 在此示例中,列 'day 1'、'day 2'、'day 3' 需要從浮點值轉換為時間增量值(以天為單位)。

#trail dataframe
newdf = pd.DataFrame({'days 1' : [14.3], 'val 1' : [147], 'days 2' : [16.7],'val 2' : [148], 'days 3' : [17.7],'val 3' : [149]})

我嘗試使用pd.to_timedelta() function 進行轉換,但是 go 錯誤arg must be a string, timedelta, list, tuple, 1-d array, or Series

newdf[['days 1','days 2', 'days 3']] = pd.to_timedelta(newdf[['days 1','days 2','days 3']],unit = 'D') 

但是,當我這樣分隔每一列時,代碼運行良好。

newdf['days 1'] = pd.to_timedelta(newdf['days 1'],unit = 'D')
newdf['days 2'] = pd.to_timedelta(newdf['days 2'],unit = 'D')
newdf['days 3'] = pd.to_timedelta(newdf['days 3'],unit = 'D')

我也嘗試使用.apply()函數但沒有運氣

newdf[['days 1','days 2','days 3']] = newdf.apply(pd.to_timedelta(arg = ['days 1','days 2','days 3'],unit = 'D'))

關於如何將 dataframe 中的指定列轉換為一行的任何想法?

使用.apply對我有用。 您錯誤地將列作為參數。

newdf[['days 1','days 2', 'days 3']] = newdf[['days 1','days 2','days 3']].apply(pd.to_timedelta,unit = 'D')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM