将日期时间格式从破折号更改为斜杠

时间:2020-04-16 01:10:18

标签: python pandas

我有一个非常令人沮丧的错误。你能帮忙吗。

df['timestamp'] = [datetime.fromtimestamp(d) for d in df.time]
df.set_index('timestamp')

这将提供以下数据框:

timestamp
2020-01-24 03:00:00    0.008018
2020-01-24 04:00:00    0.008856
2020-01-24 05:00:00    0.005884
2020-01-24 06:00:00    0.010449
2020-01-24 07:00:00    0.009826

我要更改datime的格式,如下所示:

df['timestamp'] = datetime.strptime(df['timestamp'], '%d/%m/%Y').strftime('%Y-%m-%d')

但是我有错误:

TypeError: 'str' object cannot be interpreted as an integer

Traceback (most recent call last):
  File "poly_regression_test.py", line 99, in <module>
    df['timestamp'] = datetime.strptime(df['timestamp'], '%d/%m/%Y').strftime('%Y-%m-%d')
  File "/Users/delalma/Library/Python/3.7/lib/python/site-packages/pandas/core/series.py", line 1064, in __getitem__
    result = self.index.get_value(self, key)
  File "/Users/delalma/Library/Python/3.7/lib/python/site-packages/pandas/core/indexes/datetimes.py", line 1003, in get_value
    raise KeyError(key)
KeyError: 'timestamp'

2 个答案:

答案 0 :(得分:2)

您已将timestamp设为索引,因此无法再使用其标签来调用它。尝试以下方法:

df['timestamp'] = datetime.strptime(df.index, '%d/%m/%Y').strftime('%Y-%m-%d')

答案 1 :(得分:1)

让我们使用pandas

df['timestamp'] = pd.to_datetime(df.index, '%d/%m/%Y').dt.date