我有一个大数据帧(51行x 51列),其中第一列是x值,其他50列是50个数学函数的y值。
像这样:
x y1 y2 y3 ... y49 y50
0 1 0.5 20 200 0
1 2 0.1 5 199 0
2 3 -0.2 10 198 1
3 4 -1 15 197 1
...
50 51 -70 65 151 15
我想创建一个包含50个较小数据帧的列表,其中每个df列表元素具有相同的x值和特定的y值列。
所以结果应该是这样的:
df1
x y1
0 1
1 2
2 3
3 4
...
50 51
df2
x y2
0 0.5
1 0.1
2 -0.2
3 -1
...
50 -70
etc.
我没有找到任何线索如何用for循环自动地做到这一点。知道怎么做吗?提前感谢!
您可以使用列表推导式为每个较小的DataFrame生成要保留的列:
[df[["x", f"y{i + 1}"]] for i in range(50)]
前两个元素是:
x y1
0 0 1
1 1 2
2 2 3
3 3 4
和
x y2
0 0 0.5
1 1 0.1
2 2 -0.2
3 3 -1.0