嗨,我有以下数据(字符串),正在努力将其转换为熊猫数据框。
任何帮助将不胜感激!
pd.DataFrame中带有“,”的delim在给定逗号的情况下不起作用。
[["Time","Forecast"],["2019-07-08T23:00:00Z",20],["2019-07-08T23:30:00Z",26],["2019-07-09T00:00:00Z",24],["2019-07-09T00:30:00Z",26]]
答案 0 :(得分:3)
IIUC,您可以使用ast.literal_eval
:
s='[["Time","Forecast"],["2019-07-08T23:00:00Z",20],["2019-07-08T23:30:00Z",26],["2019-07-09T00:00:00Z",24],["2019-07-09T00:30:00Z",26]]'
l=ast.literal_eval(s) #convert to actual list of list
df=pd.DataFrame(l[1:],columns=l[0])
Time Forecast
0 2019-07-08T23:00:00Z 20
1 2019-07-08T23:30:00Z 26
2 2019-07-09T00:00:00Z 24
3 2019-07-09T00:30:00Z 26
答案 1 :(得分:0)
import pandas as pd
from collections import defaultdict
lst = [["Time","Forecast"],["2019-07-08T23:00:00Z",20],["2019-07-08T23:30:00Z",26],["2019-07-09T00:00:00Z",24],["2019-07-09T00:30:00Z",26]]
map = defaultdict(list)
keys = lst[0]
for i, el in enumerate(lst):
if i != 0:
map[keys[0]].append(el[0])
map[keys[1]].append(el[1])
pd.DataFrame(map)
Forecast Time
0 20 2019-07-08T23:00:00Z
1 26 2019-07-08T23:30:00Z
2 24 2019-07-09T00:00:00Z
3 26 2019-07-09T00:30:00Z
答案 2 :(得分:0)
您可以根据数据制作适当的字典,并使用它创建df。
>>> import pandas as pd
>>> from collections import defaultdict
>>> data = [["Time","Forecast"],["2019-07-08T23:00:00Z",20],["2019-07-08T23:30:00Z",26],["2019-07-09T00:00:00Z",24],["2019-07-09T00:30:00Z",26]]
>>> columns = data[0]
>>> rows = data[1:]
>>> d = defaultdict(list)
>>> for item in rows:
... d[columns[0]].append(item[0])
... d[columns[1]].append(item[1])
...
>>> df = pd.DataFrame(d)
>>> df
Time Forecast
0 2019-07-08T23:00:00Z 20
1 2019-07-08T23:30:00Z 26
2 2019-07-09T00:00:00Z 24
3 2019-07-09T00:30:00Z 26
>>>