How to Add Incremental Numbers to a New Column Using Pandas

Question:

I have this simplified dataframe:

ID   Fruit
F1   Apple
F2   Orange
F3   Banana 

I want to add in the begining of the dataframe a new column df['New_ID'] which has the number 880 that increments by one in each row.

The output should be simply like:

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

I tried the following:

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

Any idea how to solve this?

Thanks!

Asked By: MEhsan

||

Answers:

Here:

df = df.reset_index()
df = df.rename(columns={"index":"New_ID"})
df['New_ID'] = df.index + 880
Answered By: Kartik
df.insert(0, 'New_ID', range(880, 880 + len(df)))
df

enter image description here

Answered By: piRSquared
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
Answered By: Alexander

You can also simply set your pandas column as list of id values with length same as of dataframe.

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

Reference docs : https://pandas.pydata.org/pandas-docs/stable/missing_data.html

Answered By: naman
import numpy as np

df['New_ID']=np.arange(880,880+len(df.Fruit))
df=df.reindex(columns=['New_ID','ID','Fruit'])
Answered By: Bahati Felix

For a pandas DataFrame whose index starts at 0 and increments by 1 (i.e., the default values) you can just do:

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

if you want New_ID to be the first column. Otherwise this if you don’t mind it being at the end:

df['New_ID'] = df.index + 880
Answered By: snark

I used the follow code:

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

So my "id" columns is:

1, 2, 3, …

Answered By: Joselin Ceron
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.