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

所以我基本上有一个 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 的数字添加到第二列中的值的部分,因为我什至无法让它工作。


我希望这个问题是可以理解的。如果我在这篇文章中做错了什么,请告诉我!


白衣非少年
浏览 169回答 1
1回答

眼眸繁星

您可以通过首先在 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      10  123  234001  123  234012  123  234023  123  234034  123  23404
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python