python - 更改 df 列格式
问题描述
我有以下内容dict
:
diction= [
{
"name": "x",
"no": 10,
"buy_sell": "buy",
"date": "10/07/2018"
}
,
{
"name": "y",
"no": 10,
"buy_sell": "sell",
"date": "11/07/2018"
}]
这有一个不受欢迎的日期格式,%d/%m/%Y
而我希望它是%Y-%m-%d
.
为了更改格式,我尝试将其dict
转换为 a pd.DataFrame
,然后更改列的格式date
(然后再次将其转换为 a dict
),这是我尝试过的:
tabla = pd.DataFrame(diction)
tabla['date'] = pd.to_datetime(tabla['date'])
tabla['date'] = tabla['date'].dt.strftime('%Y-%m-%d')
我不知道为什么它似乎将日期与月份混淆并抛出输出:
buy_sell date name no
0 buy 2018-10-07 x 10
1 sell 2018-11-07 y 10
我想要的输出是:
buy_sell date name no
0 buy 2018-07-10 x 10
1 sell 2018-07-11 y 10
与格式%Y-%m-%d
。
解决方案
如果您只想更改字典中日期的格式,您可以简单地:
for d in diction:
d['date'] = '{}-{}-{}'.format(d['date'][6:10], d['date'][3:5], d['date'][:2])
不需要熊猫和两次转换数据。
推荐阅读
- python - 在 Python 中为 Selenium 自动下载适当的 chromedriver
- iis - IIS 10.0 (Windows Server 2019) 对于所有网页返回安装了所有功能的空白页面
- reactjs - 当我更新状态时,结果不会更新,直到我使用 useEffect 钩子刷新页面
- reactjs - 使用 React Material-UI 时如何将选项卡指示器移到顶部
- c# - 如何在 C# 中根据外部时间打勾?
- node.js - NPM 运行构建超过 100% cpu
- apache-kafka - filebeat 可以将一个数据传输到logstash 和kafak 吗?
- python - 如何在 Python 中随着时间的推移可视化汇总的 VADER 情绪得分值?
- python - 使用 Opencv 比较签名
- r - 如何总结特定日期范围内发生的变化?