Python 在pandas中将行转换为正确的数据帧

Python 在pandas中将行转换为正确的数据帧,python,pandas,Python,Pandas,我有这种类型的行 start=2019-11-02T00:00:00&end=2019-11-03T00:00:00&step=1L source=B&select=mean&step=5K&format=2&start=2019-11-02T00 我想以这种方式将其更改为正确的csv格式 start,end,step,source,select,format 2019-11-02T00:00:00,2019-11-03T00:00:00,1L,

我有这种类型的行

start=2019-11-02T00:00:00&end=2019-11-03T00:00:00&step=1L
source=B&select=mean&step=5K&format=2&start=2019-11-02T00
我想以这种方式将其更改为正确的csv格式

start,end,step,source,select,format
2019-11-02T00:00:00,2019-11-03T00:00:00,1L,,,
2019-11-02T00,,5K,B,mean,2
如您所见,第一行没有source、select和format,因此该csv中没有该行的值。类似地,第二行也有Nan,因为它没有值


我怎样才能在熊猫身上做到这一点

首先通过以下方式将文件转换为一列
数据帧
,其中某些sep在数据中不存在:

然后在列表理解中创建字典列表,并传递给
DataFrame
构造函数:

L = [dict([y.split('=') for y in x.split('&')]) for x in df['data']]

df = pd.DataFrame(L)
print (df)
                 start                  end step source select format
0  2019-11-02T00:00:00  2019-11-03T00:00:00   1L    NaN    NaN    NaN
1        2019-11-02T00                  NaN   5K      B   mean      2
上次写入文件的时间为

L = [dict([y.split('=') for y in x.split('&')]) for x in df['data']]

df = pd.DataFrame(L)
print (df)
                 start                  end step source select format
0  2019-11-02T00:00:00  2019-11-03T00:00:00   1L    NaN    NaN    NaN
1        2019-11-02T00                  NaN   5K      B   mean      2
df.to_csv('filename1.csv', index=False)