【发布时间】:2021-04-13 08:29:26
【问题描述】:
我有以下数据框,请参阅附加输出:
Currency Date Closing Price (USD) 24h Open (USD) 24h High (USD) 24h Low
0 BTC 01/10/2013 123.65 124.30 124.75 122.56
1 BTC 02/10/2013 125.46 123.65 125.76 123.63
2 BTC 03/10/2013 108.58 125.46 125.67 83.33
3 BTC 04/10/2013 118.67 108.58 118.68 107.06
4 BTC 05/10/2013 121.34 118.67 121.94 118.01
... ... ... ... ... ... ...
273 BTC 08/04/2021 56508.94 58030.62 58645.77 55541.91
273 BTC 09/04/2021 57880.91 55996.08 58179.66 55758.49
273 BTC 10/04/2021 58171.91 58094.74 58880.82 57717.86
273 BTC 11/04/2021 59295.95 58149.65 61065.22 57924.08
273 BTC 12/04/2021 59822.90 59765.10 60588.47 59229.86
由于我需要提取月份并使用“日期”列数据进行分组,因此我将其转换为日期时间,请参见附加代码:
#datatime format
btc_df['Date'] = pd.to_datetime(btc_df['Date'])
完成此操作后,pandas 将日期列读取为 yyyy-dd-mm。这是一个问题,因为您可以想象数据没有得到正确处理。再次查看输出:
Currency Date Closing Price (USD) 24h Open (USD) 24h High (USD) 24h Low
0 BTC 2013/01/10 123.65 124.30 124.75 122.56
1 BTC 2013/02/10 125.46 123.65 125.76 123.63
2 BTC 2013/03/10 108.58 125.46 125.67 83.33
3 BTC 2013/04/10 118.67 108.58 118.68 107.06
4 BTC 2013/05/10 121.34 118.67 121.94 118.01
... ... ... ... ... ... ...
273 BTC 2021/08/04 56508.94 58030.62 58645.77 55541.91
273 BTC 2021/09/04 57880.91 55996.08 58179.66 55758.49
273 BTC 2021/10/04 58171.91 58094.74 58880.82 57717.86
273 BTC 2021/11/04 59295.95 58149.65 61065.22 57924.08
273 BTC 2021/12/04 59822.90 59765.10 60588.47 59229.86
我已尝试使用以下代码来更改此问题:
btc_df['Date'] = btc_df['Date'].dt.strftime('%Y/%m/%d')
但是当我运行这段代码时,我得到了以下错误:
AttributeError: 只能使用带有 datetimelike 值的 .dt 访问器
谁能解释我为什么会得到这种日期格式以及如何解决它?我希望将我的所有数据正确分配给每天和每月,而不是像现在这样。
谢谢!
【问题讨论】:
-
您输入的日期似乎是日-月-年格式。但是默认情况下,pd.to_datetime 将采用月-日-年。请参阅佩德罗的回答如何避免这种情况。