首页 > 解决方案 > 在 NumPy 数组中格式化日期数据

问题描述

我将非常感谢您的建议。我有一个练习,如下所示:

第一列(索引 0)包含 YYYY 格式的四位数字形式的年份值(2016,因为我们数据集中的所有旅行都来自 2016)。使用赋值将这些值更改为 test_array ndarray 中的 YY 格式 (16)。

我用一个代码来解决它:

test_array[:,0] = test_array[:,0]%100

但我确信它必须是更通用和更智能的方式才能使用 datetime 或其他方式获得相同的结果。但我找不到它。我尝试了此代码的不同变体,但我没有弄错:

dt.datetime.strptime(str(test_array[:,0]), "%Y")
test_array[:,0] = dt.datetime.strftime("%y")

你能帮我解决这个问题吗?

谢谢

标签: pythonarraysnumpydatetimedata-science

解决方案


为了将年份从 YYYY 格式转换为 YY 格式,需要中间datetime值,strftime可以通过以下方式对其进行操作:

df.iloc[:, 0] = df.iloc[:, 0].apply(lambda x: pd.datetime(x, 1, 1).strftime('%y'))

这里要获取datetime我们需要 3 个参数的值:年、月和日期,其中我们有年,其余的值默认为 1。


推荐阅读