dataframe:解析包含字典列表的列;Traceback ValueError:不能在具有重复标签的轴上重新索引.&



我在数据框中有一列(称为'data'),看起来像这样,每一行都有一个字典列表,从2022-01-04开始,今天结束,例如第一行是{'value': 18.76, 'date': '2022-01-04'}, {'value': 18.59, 'date': '2022-01-05'}, {'value': 18.99, 'date': '2022-01-06'}…

0     [{'value': 18.76, 'date': '2022-01-04'}, {'val...
1     [{'value': 38.58, 'date': '2022-01-04'}, {'val...
2     [{'value': 37.5, 'date': '2022-01-04'}, {'valu...
3     [{'value': 61.77, 'date': '2022-01-04'}, {'val...
4     [{'value': 110.54, 'date': '2022-01-04'}, {'va...
5     [{'value': 101.71, 'date': '2022-01-04'}, {'va...
6     [{'value': 86.45, 'date': '2022-01-04'}, {'val...
7     [{'value': 97.95, 'date': '2022-01-04'}, {'val...
8     [{'value': 38.39, 'date': '2022-01-04'}, {'val...
9     [{'value': 217.92, 'date': '2022-01-04'}, {'va...
10    [{'value': 86.94, 'date': '2022-01-04'}, {'val...
11    [{'value': 55.2, 'date': '2022-01-04'}, {'valu...
12    [{'value': 138.97, 'date': '2022-01-04'}, {'va...
13    [{'value': 4853125.0, 'date': '2022-01-04'}, {...
14    [{'value': 29.12, 'date': '2022-01-04'}, {'val...
15    [{'value': 90.77, 'date': '2022-01-04'}, {'val...
16    [{'value': 87.15, 'date': '2022-01-04'}, {'val...

我使用了在

之前工作的一行代码
df[['date','value']] = df['data'].apply(lambda x: [[i['date'],i['value']] for i in x]).explode().apply(pd.Series, index=['date','value'])

但是现在这行失败了,给出

ValueError: cannot reindex on an axis with duplicate labels

这个问题有简单的解决方法吗?由于有300个日期,因此每行有300个数据点,我不确定哪些日期可能包含重复数据??

您可以尝试:

df = df.explode("Column1")
df = pd.concat([df, df.pop("Column1").apply(pd.Series)], axis=1)
print(df)

打印:

value        date
0        18.76  2022-01-04
0        18.59  2022-01-05
0        18.99  2022-01-06
1        38.58  2022-01-04
2        37.50  2022-01-04
...and so on.

相关内容

  • 没有找到相关文章

最新更新