Полученный результат 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 plt
import pandas as pd
import numpy as np
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_series, y_series = dfplot['xarr'], dfplot['yarr']
x,y = x_series.iloc[0], y_series.iloc[0]
plt.plot(x, y)