我有一只熊猫DataFrame
,叫做d
,它看起来像这样:
0 {'energies': [[0, 100, 1, 17.537183749262393, ...
1 {'energies': [[0, 100, 1, 0.5002560191707848, ...
2 {'energies': [[0, 100, 1, 0.833607984160617, 0...
3 {'energies': [[0, 100, 1, 2.0271986592908204, ...
4 {'energies': [[0, 100, 1, 0.20764045065127334,...
...
119 {'energies': [[0, 100, 1, 0.6830323011861984, ...
120 {'energies': [[0, 100, 1, 3.9571018617595075, ...
121 {'energies': [[0, 100, 1, 4.815231137572439, 4...
122 {'energies': [[0, 100, 1, 33.556514163996766, ...
123 {'energies': [[0, 100, 1, 5.467475908262811, 5...
Name: results, Length: 124, dtype: object
我如何摆脱字典?已经尝试过d['energies']
,但得到这个错误:
Traceback (most recent call last):
File "C:LinearRegresseionEENX15LinearRegression.py", line 15, in <module>
print(d['energies'])
File "C:LinearRegresseionEENX15libsite-packagespandascoreseries.py", line 958, in __getitem__
return self._get_value(key)
File "C:LinearRegresseionEENX15libsite-packagespandascoreseries.py", line 1069, in _get_value
loc = self.index.get_loc(label)
File "C:LinearRegresseionEENX15libsite-packagespandascoreindexesrange.py", line 389, in get_loc
raise KeyError(key)
KeyError: 'energies'
我可以通过使用d[0]['energies']
访问单个列表。但是我想对整个数据框架都这样做。
您的问题类似于下面的问题:使用pandas将一列字典拆分/爆炸为单独的列。
Pandas有一个json_normalize()函数,它将字典拆分为自己的列。假设字典列是数据框中的第一列:
df2 = pd.json_normalize(df[0])