[英]Expand Pandas Dataframe adding rows
我有一个这样的数据框:
赛格 | FAM | 伽玛 | MIN_RAT | MAX_RAT | 勇气 |
---|---|---|---|---|---|
聚乙烯 | 001 | 002 | 1 | 2 | 5,15 |
我需要“扩展” df 添加新行以创建这样的新数据框:
赛格 | FAM | 伽玛 | MIN_RAT | MAX_RAT | 勇气 |
---|---|---|---|---|---|
聚乙烯 | 001 | 002 | 1 | 1 | 10,30 |
聚乙烯 | 001 | 002 | 1,1 | 1,1 | 9,79 |
聚乙烯 | 001 | 002 | 1,2 | 1,2 | 9,27 |
聚乙烯 | 001 | 002 | 1,3 | 1,3 | 8,76 |
聚乙烯 | 001 | 002 | 1,4 | 1,4 | 8,24 |
聚乙烯 | 001 | 002 | 1,5 | 1,5 | 7,73 |
聚乙烯 | 001 | 002 | 1,6 | 1,6 | 7,21 |
聚乙烯 | 001 | 002 | 1,7 | 1,7 | 6,70 |
聚乙烯 | 001 | 002 | 1,8 | 1,8 | 6,18 |
聚乙烯 | 001 | 002 | 1,9 | 1,9 | 5,67 |
聚乙烯 | 001 | 002 | 2 | 2 | 5,15 |
列“VALUE”的值被构造为将原始表的 5.15 除以新行数并将该值添加到 5.15(在这种情况下,我们在每行中添加 0.515)
是否有可能以最佳方式执行此操作?
这是一种方法:
rng = np.arange(df['MIN_RAT'].min(), df['MAX_RAT'].max()+.1, .1)
dfm = df.reindex(df.index.repeat(len(rng))).reset_index(drop=True)
dfm['MIN_RAT'] = rng
dfm['MAX_RAT'] = rng
step = df.loc[0,'VALOR'] / (len(rng)-1)
dfm['VALOR'] = [i * step + df.loc[0, 'VALOR'] for i in range(len(rng))][::-1]
dfm
输出:
SEG FAM GAMA MIN_RAT MAX_RAT VALOR
0 PE 1 2 1.0 1.0 10.300
1 PE 1 2 1.1 1.1 9.785
2 PE 1 2 1.2 1.2 9.270
3 PE 1 2 1.3 1.3 8.755
4 PE 1 2 1.4 1.4 8.240
5 PE 1 2 1.5 1.5 7.725
6 PE 1 2 1.6 1.6 7.210
7 PE 1 2 1.7 1.7 6.695
8 PE 1 2 1.8 1.8 6.180
9 PE 1 2 1.9 1.9 5.665
10 PE 1 2 2.0 2.0 5.150
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.