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}