我有以下資料集:
import pandas as pd
import time
the_df = pd.DataFrame(
{
"id": [21, 22, 23, 24, 15, 26, 27, 28, 29, 30],
"amount": [10, 30, 12, 60, 0.5, 0.2, np.nan, 5, np.nan, 3],
"date": [
'2022-01-01','2022-08-01',None,'2022-12-01','2022-02-01',
None,'2022-02-01','2022-01-01','2022-11-01','2022-01-01'
]
}
)
the_df
id amount date
0 21 10.0 2022-01-01
1 22 30.0 2022-08-01
2 23 12.0 None
3 24 60.0 2022-12-01
4 15 0.5 2022-02-01
5 26 0.2 None
6 27 NaN 2022-02-01
7 28 5.0 2022-01-01
8 29 NaN 2022-11-01
9 30 3.0 2022-01-01
我想將該列date轉換為float. 我的方法是將datecolumn 轉換為 pandas datetime,然后float使用 lambda 函式將 column 轉換為 a 。我的問題是評估 aNaT以避免轉換,以防萬一是NaT. 這是我嘗試過的:
the_df['date'] = pd.to_datetime(the_df['date'])
the_df['date'] = the_df['date'].\
apply(lambda x: float(time.mktime(x.timetuple())) if x.notnull() else x)
但我得到這個錯誤:
AttributeError: 'Timestamp' object has no attribute 'notnull'
我嘗試了第二個選項:
the_df['date'] = pd.to_datetime(the_df['date'])
the_df['date'] = the_df['date'].\
apply(lambda x: float(time.mktime(x.timetuple())) if x is not None else x)
但我得到這個錯誤:
ValueError: NaTType does not support timetuple
拜托,你能指出我做錯了什么嗎?為什么如果在 is 時未評估該值None,它似乎被評估為timetuple?
uj5u.com熱心網友回復:
如果您pd.notnull在 lambda 中改用,或者如果您檢查日期值是否為NaT. 就個人而言,我更喜歡第一個選項,因為它適用于所有不同型別的空值。
the_df.date = the_df.date.apply(lambda x: float(time.mktime(x.timetuple())) if pd.notnull(x) else x)
您的第二次嘗試不起作用,因為列 date 中的值(轉換后pd.to_datetime)不包含任何None,因此if x is not None始終是Truedf
uj5u.com熱心網友回復:
將列更改為日期時間后,您可以使用 df.loc 獲取不是的值,NaT然后執行應用。
melt = ~pd.isna(the_df['date']),['date']
the_df.loc[melt] = the_df.loc[melt]['date'].apply(lambda x: float(time.mktime(x.timetuple())))
id amount date
0 21 10.0 1640966400.0
1 22 30.0 1659283200.0
2 23 12.0 NaT
3 24 60.0 1669824000.0
4 15 0.5 1643644800.0
5 26 0.2 NaT
6 27 NaN 1643644800.0
7 28 5.0 1640966400.0
8 29 NaN 1667232000.0
9 30 3.0 1640966400.0
uj5u.com熱心網友回復:
NaT您可以專門測驗一個值是否存在:
the_df['date'] = pd.to_datetime(the_df['date'])
the_df['date'] = the_df['date'].\
apply(lambda x: float(time.mktime(x.timetuple())) if x is not pd.NaT else x)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/512116.html
標籤:Python熊猫约会时间
