如何在Pandas中的列中找到部分数值?

时间:2017-08-10 10:05:57

标签: python pandas

我有一个用Pandas创建的数据框。它有3列。其中一个日期的格式为%Y%m%d%H。我需要找到格式为%Y%m%d的日期匹配的行。

我试过

df.loc[df["MESS_DATUM"] == 20170807]

哪个不起作用。只有在我做的时候

df.loc[df["MESS_DATUM"] == 2017080723]

它适用于那一行。但我需要其他行只包含日期(没有小时)。我知道有.str.cotains("")之类的东西。是否有类似数值的东西或在上面的行中使用通配符的方法?

1 个答案:

答案 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