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']]