Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取数据框中某列的值,将数字添加到该值并另存为新数据框_Python_Pandas - Fatal编程技术网

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

Python 获取数据框中某列的值,将数字添加到该值并另存为新数据框,python,pandas,Python,Pandas,所以我基本上有一个熊猫数据帧df,看起来像这样: 0 1 0 123 234 1 534 42 2 213 687 3 425 123 ... 20 0 1 0 123 23400 1 123 23401 2 123 23402 3 123 23403 ... 20 123 23420 21 534 4200 ... 我要做的是取第1列的

所以我基本上有一个熊猫数据帧df,看起来像这样:

      0     1
  0  123   234
  1  534   42
  2  213   687
  3  425   123
 ...
 20  
      0     1
  0  123   23400
  1  123   23401
  2  123   23402
  3  123   23403   
 ... 
 20  123   23420
 21  534   4200
 ...
我要做的是取第1列的值,将00到20之间的所有数字相加,并将其保存在一个新的数据框newdf中,其中包含第0列的相应值。输出应该如下所示:

      0     1
  0  123   234
  1  534   42
  2  213   687
  3  425   123
 ...
 20  
      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之间的数字与第二列的值相加的部分,因为我甚至无法使其工作


我希望这个问题可以理解。如果我在这篇文章中做错了什么,请让我知道

您可以通过首先对数据帧和后缀执行

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)