python列表到dataframe对象

sha*_*nuo -3 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, Downtime: 0h 15m ']

import pandas as pd
pd.DataFrame(pdlist)
Run Code Online (Sandbox Code Playgroud)

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

Hyp*_*nja 6

您需要根据逗号分割项目.这是一个方法:

  pdlist2=[]
  for item in pdlist:
      pdlist2.append(item.split(','))
  pd.DataFrame(pdlist2) 
Run Code Online (Sandbox Code Playgroud)

使用列表推导:

pdlist2 = [item.split(',') for item in pdlist]
my_dataframe = pd.DataFrame(pdlist2)  
Run Code Online (Sandbox Code Playgroud)

更新:
既然你需要3个不同的列不"from:" "To:""Downtime:",这应该工作.这不是最好的方法,但可以胜任.

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.  
Run Code Online (Sandbox Code Playgroud)

注:re.sub如果所有的观测开始以同样的方式表达会工作.

如果您想按"From","To","Downtime"的顺序进行,您可以:

my_dataframe_new= my_dataframe[['From','To','Downtime']]
Run Code Online (Sandbox Code Playgroud)