python - 使用 pandas 拆分列和重新格式化日期
问题描述
我有一个对象,slist
我需要拆分、重新格式化日期并导出为制表符分隔的文件。对于分裂,我认为我在理解第一行时会绊倒?这里是slist
:
我尝试了以下方法:
df = pd.DataFrame(data=slist)
newdf['datetime','values'] = df['node_21_Depth_above_invert'].astype(str).str.split(' ',expand=True)
这给了我这样的东西:
我花了很多时间试图弄清楚这一点,我知道还有很多其他关于列拆分的 pandas 问题,但我碰壁了,任何见解都会有所帮助。谢谢!
解决方案
由于您现在将日期时间作为行索引,因此您可以将其设置为数据列.reset_index()
,然后重命名列,如下所示:
newdf = df.reset_index()
newdf.columns = ['datetime','values']
测试数据准备
slist = {'node_21_Depth_above_invert': {pd.Timestamp('1998-01-01 01:00:00'): 1.0, pd.Timestamp('1998-01-01 02:00:00'): 1.519419550895691, pd.Timestamp('1998-01-01 03:00:00'): 2.0, pd.Timestamp('1998-01-01 04:00:00'): 2.0, pd.Timestamp('1998-01-01 05:00:00'): 2.0}}
df = pd.DataFrame(data=slist)
print(df)
node_21_Depth_above_invert
1998-01-01 01:00:00 1.00000
1998-01-01 02:00:00 1.51942
1998-01-01 03:00:00 2.00000
1998-01-01 04:00:00 2.00000
1998-01-01 05:00:00 2.00000
运行新代码
newdf = df.reset_index()
newdf.columns = ['datetime','values']
结果:
print(newdf)
datetime values
0 1998-01-01 01:00:00 1.00000
1 1998-01-01 02:00:00 1.51942
2 1998-01-01 03:00:00 2.00000
3 1998-01-01 04:00:00 2.00000
4 1998-01-01 05:00:00 2.00000
推荐阅读
- python - 工具链构建 python3 kivy 错误 - Kivy ios ,bash
- javascript - 停止开始过渡
- python - 在单个 if 语句中组合多个存在性检查
- javascript - 带有查询的 JS import()
- scala - 如何总结scala中的两个累加器输出
- wordpress - ACF 关系字段返回 ID 而不是对象 - WordPress + Timber (TWIG)
- azure - 我*有时*收到“在 HTTP 请求中找到的 MAC 签名与任何计算机签名不同”错误
- c++ - 转换后的代码不执行给定的动作
- javascript - 如何在功能性 React 组件中触发 onScroll
- discord.py-rewrite - 如何使我的命令位于触发器的末尾?