我有一个pandas数据框,其中包含给定点的各种函数的多项式近似,其中多项式近似的度数可变。它被安排成第一列是函数名,第二列是x值,然后第2-5列是具有相应度的多项式的近似值。我想为每个函数制作1个图,显示近似值与该函数的收敛性。我知道一种方法是根据第一列名称将数据框拆分为单独的数据框,但想知道是否有更优雅的方法来执行此操作。
编辑以澄清: 所以在数据框中,有两个不相关的函数,比如a和b。第二列包含x值,第三列和第四列是x的函数。所以它可能看起来像
fnctn x y1 y2
0 a 1 2 3
1 a 2 3 2
2 a 3 4 3
3 a 4 3 4
4 a 5 2 3
5 b 1 1 2
6 b 2 4 6
7 b 3 9 12
8 b 4 16 20
9 b 5 25 30
我想要一个y1和y2的图,其中第一列是 a 在一个图上,另一个图y1和y2,其中第一列是 b < / p>
答案 0 :(得分:2)
import pandas
from matplotlib import pyplot as plt
df = pandas.DataFrame({'fnctn':['a','a','a','b','b','b'],'x':[1,2,3,1,2,3],'y1':[2,3,4,3,2,2],'y2':[3,2,3,4,3,2]})
In [19]: df
Out[19]:
fnctn x y1 y2
0 a 1 2 3
1 a 2 3 2
2 a 3 4 3
3 b 1 3 4
4 b 2 2 3
5 b 3 2 2
for f in set(df['fnctn']):
df[df['fnctn']==f].plot(x='x')