如何使用Pandas将增量数字添加到新列

时间:2016-08-10 00:05:37

标签: python pandas dataframe

我有这个简化的数据框:

ID   Fruit
F1   Apple
F2   Orange
F3   Banana 

我想在数据框的开头添加一个新列df['New_ID'],其列号880在每行中递增1。

输出应该简单如下:

New_ID   ID   Fruit
880      F1   Apple
881      F2   Orange
882      F3   Banana  

我尝试了以下内容:

df['New_ID'] = ["880"] # but I want to do this without assigning it the list of numbers literally

知道如何解决这个问题吗?

谢谢!

7 个答案:

答案 0 :(得分:73)

df.insert(0, 'New_ID', range(880, 880 + len(df)))
df

enter image description here

答案 1 :(得分:25)

下面:

df = df.reset_index()
df.columns[0] = 'New_ID'
df['New_ID'] = df.index + 880

答案 2 :(得分:9)

df = df.assign(New_ID=[880 + i for i in xrange(len(df))])[['New_ID'] + df.columns.tolist()]

>>> df
   New_ID  ID   Fruit
0     880  F1   Apple
1     881  F2  Orange
2     882  F3  Banana

答案 3 :(得分:4)

您还可以简单地将pandas列设置为ID值列表,其长度与数据帧的长度相同。

df['New_ID'] = range(880, 880+len(df))

参考文档:https://pandas.pydata.org/pandas-docs/stable/missing_data.html

答案 4 :(得分:1)

import numpy as np

df['New_ID']=np.arange(880,880+len(df.Fruit))
df=df.reindex(columns=['New_ID','ID','Fruit'])

答案 5 :(得分:1)

对于索引从0开始并以1递增(即默认值)的pandas DataFrame,您可以执行以下操作:

df.insert(0, 'New_ID', df.index + 880)

如果您希望New_ID是第一列。否则,如果您不介意最后的话:

df['New_ID'] = df.index + 880

答案 6 :(得分:1)

我使用了以下代码:

df.insert(0, 'id', range(1, 1 + len(df)))

所以我的“id”列是:

1, 2, 3, ...