我們可以在 「整數除法」 MESS_DATUM
列由100
:
df.loc[df["MESS_DATUM"]//100 == 20170807]
演示:
In [29]: df
Out[29]:
MESS_DATUM
0 2017080719
1 2017080720
2 2017080721
3 2017080722
4 2017080723
In [30]: df.dtypes
Out[30]:
MESS_DATUM int64
dtype: object
In [31]: df["MESS_DATUM"]//100
Out[31]:
0 20170807
1 20170807
2 20170807
3 20170807
4 20170807
Name: MESS_DATUM, dtype: int64
但我會考慮將其轉換爲datetime
D型:
df["MESS_DATUM"] = pd.to_datetime(df["MESS_DATUM"].astype(str), format='%Y%m%d%H')
如果df["MESS_DATUM"]
是float
D型的,那麼我們可以使用下面的技巧:
In [41]: pd.to_datetime(df["MESS_DATUM"].astype(str).str.split('.').str[0],
format='%Y%m%d%H')
Out[41]:
0 2017-08-07 19:00:00
1 2017-08-07 20:00:00
2 2017-08-07 21:00:00
3 2017-08-07 22:00:00
4 2017-08-07 23:00:00
Name: MESS_DATUM, dtype: datetime64[ns]
第一個命令工作完全正常。你能解釋它的作用嗎?由於我需要更改爲日期格式,所以我也測試了第二種方法。但是我遇到了一個'ValueError:未轉換的數據仍然是:.0'。不知道是什麼造成的。我猜的類型佛DF或列? – BallerNacken
@BallerNacken,我已經添加了一個小演示...什麼是'MESS_DATUM'的dtype - 我想它是浮動的?在將'df [「MESS_DATUM」]'轉換爲datetime dtype時,您是否想保留'hour'部分? – MaxU
是'MESS_DATUM'是浮動的。是的,我需要保持一個小時。 – BallerNacken