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!
import numpy as np
df['New_ID']=np.arange(880,880+len(df.Fruit))
df=df.reindex(columns=['New_ID','ID','Fruit'])
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
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
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
Source: Stackoverflow.com