Python 使用pandas拆分列并重新设置日期格式
我有一个对象,Python 使用pandas拆分列并重新设置日期格式,python,pandas,Python,Pandas,我有一个对象,slist,我需要拆分它,重新格式化日期,并将其导出为以制表符分隔的文件。对于分裂,我想我在理解第一排时绊倒了?这是列表: 我尝试了以下方法: df = pd.DataFrame(data=slist) newdf['datetime','values'] = df['node_21_Depth_above_invert'].astype(str).str.split(' ',expand=True) 这给了我类似的东西: 我花了很多时间试图弄清楚这一点,我知道还有很多关
slist
,我需要拆分它,重新格式化日期,并将其导出为以制表符分隔的文件。对于分裂,我想我在理解第一排时绊倒了?这是列表
:
我尝试了以下方法:
df = pd.DataFrame(data=slist)
newdf['datetime','values'] = df['node_21_Depth_above_invert'].astype(str).str.split(' ',expand=True)
这给了我类似的东西:
我花了很多时间试图弄清楚这一点,我知道还有很多关于列拆分的问题,但我遇到了困难,任何见解都会有所帮助。谢谢 由于您现在将datetime作为行索引,您可以通过将其设置为数据列,然后重命名这些列,如下所示:
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
您好,
slist
(字符串、列表等)的类型是什么?您可以添加(避免图像)打印(df.head(5).to_dict())?打印(df.head(5.to_dict()){'node_21_Depth_over_invert':{时间戳('1998-01-01 01:00:00'):1.0,时间戳('1998-01-01 02:00:00'):1.519419550895691,时间戳('1998-01-01-01-01 03:00:00'):2.0,时间戳)('1998-01-01 05:00:00'):2.0}