【问题标题】:Expand Pandas Dataframe adding rows展开 Pandas Dataframe 添加行
【发布时间】:2021-07-14 13:51:02
【问题描述】:

我有一个这样的数据框:

SEG FAM GAMA MIN_RAT MAX_RAT VALOR
PE 001 002 1 2 5,15

我需要“扩展” df 添加新行以创建一个新的数据框,如下所示:

SEG FAM GAMA MIN_RAT MAX_RAT VALOR
PE 001 002 1 1 10,30
PE 001 002 1,1 1,1 9,79
PE 001 002 1,2 1,2 9,27
PE 001 002 1,3 1,3 8,76
PE 001 002 1,4 1,4 8,24
PE 001 002 1,5 1,5 7,73
PE 001 002 1,6 1,6 7,21
PE 001 002 1,7 1,7 6,70
PE 001 002 1,8 1,8 6,18
PE 001 002 1,9 1,9 5,67
PE 001 002 2 2 5,15

“VALUE”列的值是用原始表的 5.15 除以新行数并将该值与 5.15 相加(在这种情况下,我们每行加 0.515)

是否有可能做到这一点?

【问题讨论】:

  • 我认为在这种情况下,您的意思是“VALUE”的“VALOR”列对吗?
  • 是的,对不起。谢谢

标签: python pandas dataframe


【解决方案1】:

这是一种方法:

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

【讨论】:

  • 谢谢,这很有用!如果你能帮助我,你能再看看这个问题吗?
  • 当然,您可以在 LinkedIn 上与我联系。或者再次在这里发帖,我本人或其他优秀的开发人员会为您提供帮助。
  • 如果你不介意并且这篇文章对你有帮助,你会考虑accepting这个答案。
  • 非常感谢...我是菜鸟...对不起...我会重新发布问题!
猜你喜欢
  • 2016-11-07
  • 2021-09-27
  • 1970-01-01
  • 2016-10-19
  • 2012-11-15
  • 2014-05-19
  • 2020-03-04
  • 2021-06-06
  • 1970-01-01
相关资源
最近更新 更多