關于如何操作當前日期時間資料以使其適用于將資料型別轉換為時間的任何想法?例如:
df1['Date/Time'] = pd.to_datetime(df1['Date/Time'])
資料的當前格式為 mm/dd 00:00:00
下面可以看到資料框中列的示例。
Date/Time Dry_Temp[C] Wet_Temp[C] Solar_Diffuse_Rate[[W/m2]] \
0 01/01 00:10:00 8.45 8.237306 0.0
1 01/01 00:20:00 7.30 6.968360 0.0
2 01/01 00:30:00 6.15 5.710239 0.0
3 01/01 00:40:00 5.00 4.462898 0.0
4 01/01 00:50:00 3.85 3.226244 0.0
uj5u.com熱心網友回復:
要訪問日期時間(即時間)的值,您可以使用:
# These are now in a usable format
seconds = df1['Date/Time'].dt.second
minutes = df1['Date/Time'].dt.minute
hours = df1['Date/Time'].dt.hours
如果需要,您可以使用以下命令創建自己的獨立時間序列:
df1['Dat/Time'].dt.time
uj5u.com熱心網友回復:
對于小時表示為 24 的情況,您有兩種選擇。首先,您可以簡單地將小時重置為 00,第二個您可以將小時重置為 00,并在日期上加 1。
在任何一種情況下,第一步都是檢測可以用簡單的 find 陳述句完成t.find(' 24:')
的條件 在第一種情況下檢測到條件后,只需將小時重置為 00 并繼續格式化欄位的程序。但是,在第二種情況下,將一天加 1 會稍微復雜一些,因為您可以滾動到下個月。
這是我將使用的方法:
給定一個 df 形式:
Date Time
0 01/01 00:00:00
1 01/01 00:24:00
2 01/01 24:00:00
3 01/31 24:00:00
第一種情況
def parseDate2(tx):
ti = tx.find(' 24:')
if ti >= 0:
tk = pd.to_datetime(tx[:5] ' 00:' tx[10:], format= '%m/%d %H:%M:%S')
return tk du.relativedelta.relativedelta(hours= 24)
return pd.to_datetime(tx, format= '%m/%d %H:%M:%S')
df['Date Time'] = df['Date Time'].apply(lambda x: parseDate(x))
產生以下內容:
Date Time
0 1900-01-01 00:00:00
1 1900-01-01 00:24:00
2 1900-01-01 00:00:00
3 1900-01-31 00:00:00
對于第二種情況,我使用了 dateutil relativedelta 庫并稍微修改了我的 parseDate 函式,如下所示:
import dateutil as du
def parseDate2(tx):
ti = tx.find(' 24:')
if ti >= 0:
tk = pd.to_datetime(tx[:5] ' 00:' tx[10:], format= '%m/%d %H:%M:%S')
return tk du.relativedelta.relativedelta(hours= 24)
return pd.to_datetime(tx, format= '%m/%d %H:%M:%S')
df['Date Time'] = df['Date Time'].apply(lambda x: parseDate2(x))
產量:
Date Time
0 1900-01-01 00:00:00
1 1900-01-01 00:24:00
2 1900-01-02 00:00:00
3 1900-02-01 00:00:00
?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/350570.html
