Creating new data frame from old dataframe

Question:

I want to create a new dataframe having only those rows which has name in the Image_list. Original df has records more than 200,000 whereas Image_list has only 300 list of image names.

for name in Image_list:
    df1= df.loc[df['ID']== name]
    print(df1)
    Final_data.append(df1)

Final_data.shape

‘ID’ column contains much more than Image_list, for example

['Black_Hair',
 'Eyeglasses',
 'Male',
 'Smiling',
 'Straight_Hair',
 'Wearing_Earrings',
 'Wearing_Necktie']
Asked By: Hijab Sehar

||

Answers:

You would need to assign the new data to the existing df Final_data. Also, the method df.append() is deprecated. Should use pd.concat() instead

import pandas as pd

Final_data = pd.DataFrame()

for name in Image_list:
    df1 = df[df['ID']==name]
    print(df1.shape)
    Final_data = pd.concat([Final_data, df1])

print(Final_data.shape)
Answered By: perpetual student
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.