我大约有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
,但第一个数据消失,仅显示最近附加的数据。我做错了什么吗?
答案 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