gpt4 book ai didi

python - 如何更改 Pandas 数据框中的日期

转载 作者:太空宇宙 更新时间:2023-11-04 03:04:04 25 4
gpt4 key购买 nike

我有如下数据框

     day
0 2016-07-12
1 2016-08-13
2 2016-09-14
3 2016-10-15
4 2016-11-01

dtype:datetime64

我想像下面这样更改日期

     day
0 2016-07-01
1 2016-08-01
2 2016-09-01
3 2016-10-01
4 2016-11-01

我试过了

df.day.dt.day=1

但是效果不是很好我该如何转型?

最佳答案

可以使用numpy,先通过values转成numpy数组然后通过 astype 转换为 datetime64[M] ,什么是最快的解决方案:

df['day'] = df['day'].values.astype('datetime64[M]')
print (df)
day
0 2016-07-01
1 2016-08-01
2 2016-09-01
3 2016-10-01
4 2016-11-01

另一个较慢的解决方案:

df['day'] = df['day'].map(lambda x: pd.datetime(x.year, x.month, 1))
print (df)
day
0 2016-07-01
1 2016-08-01
2 2016-09-01
3 2016-10-01
4 2016-11-01

时间:

#[50000 rows x 1 columns]
df = pd.concat([df]*10000).reset_index(drop=True)

def f(df):
df['day'] = df['day'].values.astype('datetime64[M]')
return df

print (f(df))

In [281]: %timeit (df['day'].map(lambda x: pd.datetime(x.year, x.month, 1)))
10 loops, best of 3: 160 ms per loop

In [282]: %timeit (f(df))
100 loops, best of 3: 4.38 ms per loop

关于python - 如何更改 Pandas 数据框中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40039457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com