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)