繁体   English   中英

Python & Pandas:如何在 (for) 循环中从我的大数据框创建新的小数据框?

[英]Python & Pandas: How can I create new smaller data frames from my large data frame in a (for) loop?

我有一个大数据框(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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM