dataframe 添加列表到一个单元格并解决报错ValueError: Must have equal len keys and value when setting with an...

报错解析

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0,10,size=(5, 2)),columns=['test1','test2'])

生成的dataframe格式是:
dataframe 添加列表到一个单元格并解决报错ValueError: Must have equal len keys and value when setting with an..._第1张图片
直接使用:

df.loc[0,'test_list'] = np.array([1,2,3])

会报错:ValueError: Must have equal len keys and value when setting with an iterable

解决方法

解决思路:

  1. 将添加的列表转换为byte类型的数据
  2. byte数据存放在单元格中
  3. 需要取数据的时候,将byte类型的数据在转换回来,变为ndarry格式的数据
df.loc[0,'test_list'] = np.array([1,2,3]).tobytes()

这样就不会报错,第一行的数据是:
在这里插入图片描述
在需要数据时,使用:

np.frombuffer(df.loc[0,'test_list'], dtype=float)

这样就可以了

你可能感兴趣的:(数据处理,pandas)