如何从python中的不同数据框中追加数据?

时间:2019-01-07 04:28:44

标签: python pandas

我大约有20个数据帧,所有数据帧都有相同的列,我想将数据添加到空数据帧中,但是当我使用代码时

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

用于附加第一个数据帧,然后更改该代码中的名称,以希望它将附加更多数据

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

,但第一个数据消失,仅显示最近附加的数据。我做错了什么吗?

2 个答案:

答案 0 :(得分:0)

为什么在这里使用附加?这不是清单。获得第一个数据帧(例如称为d1)后,请尝试:

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

您可以对所有20个数据帧执行相同的操作。

答案 1 :(得分:0)

从现有DataFrame创建新DataFrame的一种方法是使用df.copy()Here is Detailed documentation

df.copy()在这里非常相关,因为更改新数据框中的数据子集将更改初始DataFrame。因此,您很有可能会丢失实际的dataFrame,因此需要它。

假设示例数据框为 df1

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

解决方案,您可以按以下方式使用df.copy方法来继承数据。

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

如果您需要像df2一样创建新的数据框(df1),但又不想在DF上插入值,则可以选择使用reindex_like()方法。

>>> 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