首页 > 解决方案 > 在 Pandas 中创建新行,通过添加到前一行,循环直到创建 x 行

问题描述

输入:

mp = [1,2,3,4]
tw = [4,7,3,5]
cw = []

# create the data frame:

df = pd.DataFrame((cw),
    columns = ["1","2","3","4"])

# add list tw to the first row

df.loc[len(df)] = tw
df

输出:

    1      2      3      4
0   4      7      3      5

期望的输出:

      1      2      3      4
0     4      7      3      5
1     5      8      4      6
2     6      9      5      7
...  ...    ...    ...    ...
3000 3003   3006   3002   3004

从列表“tw”的初始参考行开始,我需要将 1 添加到起始值并继续。如何循环并继续创建行,以便下一行是前一行 +1,我需要为 3000 行执行此操作。我见过的很多解决方案都需要我创建列表并添加到 pandas 数据框中,但是我无法手动创建 3000 个列表,然后手动将它们添加到我的数据框中。一定有办法绕过这个,请帮忙!

标签: pythonpandasdataframeloopsiteration

解决方案


df.appenddf.tail和一起使用df.add

n = 3000 # this is the value of total rows you want

In [209]: for i in range(n):
     ...:     df = df.append(df.tail(1).add(1))
     ...: 

例子:

In [214]: df
Out[214]: 
   1  2  3  4
0  4  7  3  5

In [215]: n = 5

In [216]: for i in range(5):
     ...:     df = df.append(df.tail(1).add(1))
     ...: 

In [217]: df
Out[217]: 
   1   2  3   4
0  4   7  3   5
0  5   8  4   6
0  6   9  5   7
0  7  10  6   8
0  8  11  7   9
0  9  12  8  10

推荐阅读