在数据框中的Pandas系列上的空白之前获取字符串

 收藏

我正在准备用于绘图的数据,但是我目前在将函数应用于Pandas数据框时遇到问题

这是我的数据框:

我需要做的只是从时间戳记中获取日期。因此,在当前数据帧中,预期结果应如下所示:

             timestamp    action
0           2020-03-03 pagevisit
1           2020-03-03 pagevisit
2           2020-03-03 pagevisit
3           2020-03-03 pagevisit
4           2020-03-03 pagevisit

我有大约100,000条记录需要清除并仅获取日期。我试过了

df['timestamp'] = df['timestamp'].apply(lambda x: x.split(' ')[0])

它返回错误

AttributeError: 'Timestamp' object has no attribute 'split'

- 我也试过

df['timestamp'] = df.apply(lambda x: x['timestamp'].split(' ')[0])

但它返回

return self._engine.get_loc(self._maybe_cast_indexer(key))
File "pandas/_libs/index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/index.pyx", line 135, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/index_class_helper.pxi", line 109, in pandas._libs.index.Int64Engine._check_type
KeyError: 'timestamp'

我觉得这是一个相当容易的任务,但是我已经检查了过去一个小时,但仍然无法完成。我的熊猫版本是1.0.1,所以我真的不知道原因,我已经很绝望。请帮忙。

回复
  • Use .date()

    例如:

    df['timestamp'] = df['timestamp'].date()
    

    演示:

    print(pd.Timestamp('2020-03-03 12:13:56+09:00').date())
    # -->2020-03-03
    

  • Looking at the error, it seems that the column timestamp have type of pd.Timestamp

    (check documentation: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Timestamp.html)

    如果只想以字符串形式获取日期,则可以按照以下步骤进行操作

    df['timestamp'] = df['timestamp'].apply(lambda x: str(x.date()))
    

    (or you can just use x.date() to get the datetime.date type )