繁体   English   中英

展开 Pandas Dataframe 添加行

[英]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.

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