gpt4 book ai didi

python - Pandas 复制行并添加列

转载 作者:行者123 更新时间:2023-12-05 05:50:58 24 4
gpt4 key购买 nike

我有一个包含数百行的 pandas df,看起来像这样:

<表类="s-表"><头>身份证值<正文>IDx126IDx1512

我想复制这些行 2 次,递增 value列并添加一个名为 ratio 的列对于每个新创建的行。这是 ratio 的值我想要创建的行:

  • 原始行 = 0
  • 第一次重复 = 0.25
  • 第二次复制 = 0.5

所以输出应该是这样的:

<表类="s-表"><头>身份证值比率<正文>IDx1260IDx1270.25IDx1280.5IDx15120IDx15130.25IDx15140.5

我找到了一个非常愚蠢的方法来复制 df,递增 value手动添加一列 ratio然后连接所有的 df。但它非常效率低下。你有聪明的方法吗?感谢您的帮助。

最佳答案

下面是解决该问题的矢量化方法。

创建一个包含重复行的数据框

rdf = pd.DataFrame(np.repeat(df.values, 3, axis=0), columns=df.columns)

创建一个列来保存重复次数

rdf['repeat'] = 1
rdf['repeat'] = rdf.groupby('ID').repeat.cumsum() - 1

将重复添加到值

rdf['value'] += rdf['repeat']

创建比率列

rdf['ratio'] = rdf.repeat * 0.25

瞧!输出是

      ID value  repeat  ratio
0 IDx12 6 0 0.00
1 IDx12 7 1 0.25
2 IDx12 8 2 0.50
3 IDx15 12 0 0.00
4 IDx15 13 1 0.25
5 IDx15 14 2 0.50

关于python - Pandas 复制行并添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70449147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com