Hook Im
Hook Im

Reputation: 293

how to append data from different data frame in python?

I have about 20 data frames and all data frames are having same columns and I would like to add data into the empty data frame but when I use my code

interested_freq

     UPC    CPC   freq
0   136.0   B64G    2
1   136.0   H01L    1
2   136.0   H02S    1
3   244.0   B64G    1
4   244.0   H02S    1
5   257.0   B64G    1
6   257.0   H01L    1
7   312.0   B64G    1
8   312.0   H02S    1

    list_of_lists = []
    max_freq = df_interested_freq[df_interested_freq['freq'] == df_interested_freq['freq'].max()]
    for row, cols in max_freq.iterrows():
        interested_freq = df_interested_freq[df_interested_freq['freq'] != 1]
        interested_freq 
        list_of_lists.append(interested_freq)

    list_of_lists

for append the first data frame, and then change the name in that code for hoping that it will append more data

list_of_lists = []
    for row, cols in max_freq.iterrows():
        interested_freq_1 = df_interested_freq_1[df_interested_freq_1['freq'] != 1]
        interested_freq_1 
        list_of_lists.append(interested_freq_1)

    list_of_lists

but the first data is disappeared and show only the recent appended data. do I have done something wrong?

Upvotes: 0

Views: 240

Answers (2)

Karn Kumar
Karn Kumar

Reputation: 8816

One way to Create a new DataFrame from existing DataFrame is use to df.copy(): Here is Detailed documentation

The df.copy() is very much relevant here because changing the subset of data within new dataframe will change the initial DataFrame So, you have fair chances of losing your actual dataFrame thus you need it.

Suppose Example DataFrame is df1 :

>>> df1
   col1  col2
1    11    12
2    21    22

Solution , you can use df.copy method as follows which will inherit the data along.

>>> df2 = df1.copy()
>>> df2
   col1  col2
1    11    12
2    21    22

In case you need to new dataframe(df2) to be created as like df1 but don't want the values to inserted across the DF then you have option to use reindex_like() method.

>>> df2 = pd.DataFrame().reindex_like(df1)
# df2 = pd.DataFrame(data=np.nan,columns=df1.columns, index=df1.index)
>>> df2
   col1  col2
1   NaN   NaN
2   NaN   NaN

Upvotes: 1

N.Clarke
N.Clarke

Reputation: 268

Why do you use append here? It’s not a list. Once you have the first dataframe (called d1 for example), try:

new_df = df1
new_df = pd.concat([new_df, df2])

You can do the same thing for all 20 dataframes.

Upvotes: 0

Related Questions