我有一个用Pandas创建的数据框。它有3列。其中一个日期的格式为%Y%m%d%H。我需要找到格式为%Y%m%d的日期匹配的行。
我试过
df.loc[df["MESS_DATUM"] == 20170807]
哪个不起作用。只有在我做的时候
df.loc[df["MESS_DATUM"] == 2017080723]
它适用于那一行。但我需要其他行只包含日期(没有小时)。我知道有.str.cotains("")
之类的东西。是否有类似数值的东西或在上面的行中使用通配符的方法?
答案 0 :(得分:2)
我们可以"整数除以" MESS_DATUM
的{{1}}列:
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
dtype:
datetime
如果df["MESS_DATUM"] = pd.to_datetime(df["MESS_DATUM"].astype(str), format='%Y%m%d%H')
属于df["MESS_DATUM"]
dtype,那么我们可以使用以下技巧:
float