gpt4 book ai didi

python - 将字符串日期转换为 Pandas 数据框中的不同格式

转载 作者:行者123 更新时间:2023-11-28 21:46:22 27 4
gpt4 key购买 nike

到目前为止,我一直在社区中寻找这个答案,找不到。

我在 python 3.5.1 中有一个数据框,其中包含一个列,其中包含从 CSV 文件导入的字符串中的日期。

数据框看起来像这样

                  TimeStamp  TBD  TBD     Value  TBD
0 2016/06/08 17:19:53 NaN NaN 0.062942 NaN
1 2016/06/08 17:19:54 NaN NaN 0.062942 NaN
2 2016/06/08 17:19:54 NaN NaN 0.062942 NaN

我需要的是将 TimeStamp 列格式更改为%m/%d/%y %H:%M:%D

                  TimeStamp  TBD  TBD     Value  TBD
0 06/08/2016 17:19:53 NaN NaN 0.062942 NaN

到目前为止,我已经找到了一些适用于字符串而不适用于系列的解决方案

任何帮助将不胜感激

谢谢

最佳答案

如果将字符串列转换为时间序列,则可以使用 dt.strftime method :

import numpy as np
import pandas as pd
nan = np.nan
df = pd.DataFrame({'TBD': [nan, nan, nan], 'TBD.1': [nan, nan, nan], 'TBD.2': [nan, nan, nan], 'TimeStamp': ['2016/06/08 17:19:53', '2016/06/08 17:19:54', '2016/06/08 17:19:54'], 'Value': [0.062941999999999998, 0.062941999999999998, 0.062941999999999998]})
df['TimeStamp'] = pd.to_datetime(df['TimeStamp']).dt.strftime('%m/%d/%Y %H:%M:%S')
print(df)

产量

   TBD  TBD.1  TBD.2            TimeStamp     Value
0 NaN NaN NaN 06/08/2016 17:19:53 0.062942
1 NaN NaN NaN 06/08/2016 17:19:54 0.062942
2 NaN NaN NaN 06/08/2016 17:19:54 0.062942

由于您希望将一列字符串转换为另一列(不同的)字符串,您还可以使用向量化的 str.replace 方法:

import numpy as np
import pandas as pd
nan = np.nan
df = pd.DataFrame({'TBD': [nan, nan, nan], 'TBD.1': [nan, nan, nan], 'TBD.2': [nan, nan, nan], 'TimeStamp': ['2016/06/08 17:19:53', '2016/06/08 17:19:54', '2016/06/08 17:19:54'], 'Value': [0.062941999999999998, 0.062941999999999998, 0.062941999999999998]})
df['TimeStamp'] = df['TimeStamp'].str.replace(r'(\d+)/(\d+)/(\d+)(.*)', r'\2/\3/\1\4')
print(df)

自从

In [32]: df['TimeStamp'].str.replace(r'(\d+)/(\d+)/(\d+)(.*)', r'\2/\3/\1\4')
Out[32]:
0 06/08/2016 17:19:53
1 06/08/2016 17:19:54
2 06/08/2016 17:19:54
Name: TimeStamp, dtype: object

这使用正则表达式重新排列字符串的片段而不首先解析字符串作为日期。这比第一种方法更快(主要是因为它跳过了解析步骤),但它也有不检查的缺点日期字符串是有效日期。

关于python - 将字符串日期转换为 Pandas 数据框中的不同格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38060172/

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