为了账号安全,请及时绑定邮箱和手机立即绑定

获取 Pandas 数据框中列的值,将数字添加到值并另存为新数据框

获取 Pandas 数据框中列的值,将数字添加到值并另存为新数据框

白衣非少年 2021-11-02 13:54:28
所以我基本上有一个 Pandas 数据框df看起来像这样:      0     1  0  123   234  1  534   42  2  213   687  3  425   123 ... 20  我想要做的是取第 1 列的值,添加从 00 到 20 的所有数字,并将其保存在一个新的数据框newdf 中,并使用第 0 列的相应值。输出应该如下所示:      0     1  0  123   23400  1  123   23401  2  123   23402  3  123   23403    ...  20  123   23420 21  534   4200 ...我知道我必须使用循环,但我完全不知道如何实现我想要的。这是我到目前为止想出的:newdf = pd.DataFrame()for x in df[1]:    for y in range(len(df)):        for one in range(0,9):            newdf.append(df.iloc[y,0], df.iloc[y,1])        for two in range(10,20):            newdf.append(df.iloc[y,0], df.iloc[y,1])这缺少将 00 到 20 的数字添加到第二列中的值的部分,因为我什至无法让它工作。我希望这个问题是可以理解的。如果我在这篇文章中做错了什么,请告诉我!
查看完整描述

1 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

您可以通过首先在 DataFrame 和后缀上执行CROSS JOIN(笛卡尔积)来做到这一点。


u = pd.DataFrame(dict(suf=range(20), key=1))

v = df.assign(key=1).merge(u, on='key').drop('key', 1)


v.iloc[:,1] = v.iloc[:,1].astype(str).add(

    v.pop('suf').astype(str).str.zfill(2)).astype(int)

v.head()


     0      1

0  123  23400

1  123  23401

2  123  23402

3  123  23403

4  123  23404


查看完整回答
反对 回复 2021-11-02
  • 1 回答
  • 0 关注
  • 168 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号