首页 > 解决方案 > 在数据框中的 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'

我觉得这是一项相当容易的任务,但我已经检查了过去一个小时,但仍然无法得到它。我的 pandas 版本是 1.0.1,所以老实说我不知道​​原因,我已经绝望了。请帮忙。

标签: pythonpandasdataframeseries

解决方案


利用.date()

前任:

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

演示:

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

推荐阅读