Pandas 数据帧对象的python列表

Pandas 数据帧对象的python列表,pandas,Pandas,当我尝试将列表转换为数据帧时,我将整行作为一个单元格 pdlist=['From: 2012-11-07 19:16:07, To: 2012-11-07 19:21:07, Downtime: 0h 05m 00s', 'From: 2012-11-13 06:16:07, To: 2012-11-13 06:21:07, Downtime: 0h 05m 00s', 'From: 201=4-10-19 18:10:57, To: 2014-10-19 18:25:57, Downtim

当我尝试将列表转换为数据帧时,我将整行作为一个单元格

pdlist=['From: 2012-11-07 19:16:07, To: 2012-11-07 19:21:07, Downtime: 0h 05m 00s',
 'From: 2012-11-13 06:16:07, To: 2012-11-13 06:21:07, Downtime: 0h 05m 00s',
 'From: 201=4-10-19 18:10:57, To: 2014-10-19 18:25:57, Downtime: 0h 15m ']

import pandas as pd
pd.DataFrame(pdlist)

预期输出为3列,前2列为日期时间。

您需要根据逗号拆分项目。这里有一个方法:

  pdlist2=[]
  for item in pdlist:
      pdlist2.append(item.split(','))
  pd.DataFrame(pdlist2) 
使用列表理解:

pdlist2 = [item.split(',') for item in pdlist]
my_dataframe = pd.DataFrame(pdlist2)  
更新:
由于您需要3个不带
“的不同列,从:“
”到:“
”停机时间:“
”,这应该可以工作。这不是最好的方法,但确实有效

import re
import pandas as pd
dict2={'From':[],'To':[],'Downtime':[]} #initialize dictionary with keys and empty values
for item in pdlist2:
    a=re.sub('From: ','',item[0]) #remove From:
    dict2['From'].append(a)
    b = re.sub('To: ','',item[1]) #remove To:
    dict2['To'].append(b)
    c = re.sub('Downtime: ','',item[2]) #remove Downtime
    dict2['Downtime'].append(c)
my_dataframe = pd.DataFrame(dict2) #Convert dict to dataframe with dict keys as column names.  
注意:如果所有观察都以相同的方式开始,则
re.sub
表达式将起作用

如果您希望按照“从”、“到”、“停机”的顺序进行,您可以执行以下操作:

my_dataframe_new= my_dataframe[['From','To','Downtime']]