如何使用列中的 np 数组条目创建熊猫/泡菜数据集

我在 python 中有一个字典列表,其中包含浮点数和 np 数组的值。我想将它保存在熊猫数据框中,以便我可以为给定的一组参数绘制 xarr, yarr 。


dic1 = {'p1':1, 'p2': 34, 'xarr' : np.array([1,2,3]) , 'yarr': np.array([4,4,6])}

dic2 = {'p1':2, 'p2': 45 ,'xarr' : np.array([1,2,3]) , 'yarr': np.array([6,6,4])}

listdic = [dic1, dic2]

df = pd.DataFrame(listdic)

dfplot= df[df['p1'] > 1]

x, y = dfplot['xarr'], dfplot['yarr']

plt.plot(x, y)

但我收到这个错误


ValueError: setting an array element with a sequence.

因为我也得到了熊猫 df 的索引。有没有一种有效的方法来做到这一点?


catspeake
浏览 196回答 1
1回答

犯罪嫌疑人X

dataframe您创建的结果如下所示:当您要求: 时x, y = dfplot['xarr'], dfplot['yarr'],您要求的是列xarr&的内容,yarr它们都包含列表。因此,对于他们中的每一个,您都会得到一系列列表。亲眼看看:type(x)结果:pandas.core.series.Series您可以使用iloc访问系列内容:idx = 0 x = x_series.iloc[idx]在您的示例中,您只有 1 条记录,因此您可以简单地使用:import matplotlib.pyplot as pltimport pandas as pdimport numpy as npdic1 = {'p1':1, 'p2': 34, 'xarr' : np.array([1,2,3]) , 'yarr': np.array([4,4,6])}dic2 = {'p1':2, 'p2': 45 ,'xarr' : np.array([1,2,3]) , 'yarr': np.array([6,6,4])}listdic = [dic1, dic2]df = pd.DataFrame(listdic)dfplot= df[df['p1'] > 1]x_series, y_series = dfplot['xarr'], dfplot['yarr']x,y = x_series.iloc[0], y_series.iloc[0]plt.plot(x, y)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python