当我尝试将列表转换为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个为日期时间.
您需要根据逗号分割项目.这是一个方法:
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)
| 归档时间: |
|
| 查看次数: |
357 次 |
| 最近记录: |