如何在另一个数据帧的行中重新排列和附加包含在 df 列中的数据

How to rearrange and append data contained in a column of a df in the rows of another dataframe

我很难将数据从数据帧移动到新的空数据帧。

这些是我的dfs

df1:

df2:

我想在 df2['Close','Close 2','Close 3',...,[=40= 中重新排列 df1['Close'] 的值]] 在一行 df2 中放置 20 'Close' 个 df1 值(df1 第一行 20 个),然后在 df2 的第二行放置接下来的 20 行 df1(从 21 到 40) .这将在忽略两个 dfs 的目标列时发生,因此我尝试以这些参数为例。 我试着解释得更好.. 5(在 for 循环的范围内)是我想在 df2:

中处理 df1['Close'] 的前 100 个值的行数
for j in range (0, 5):

    count = 20;
    amazon_df_copy = 
amazon_df_copy.iloc[j:j+1,1:len(amazon_df_copy.columns)].append(normalized_amazon_df.iloc[:count,1:2]);
    count += 20;

结果是这样的:

我什至尝试过不同的方法,但我只能填充一栏,结果我的栏的顺序发生了变化,甚至有些栏不见了。当我完成后,我将删除 NaN 剩余值,而目标将填充与 20 个输入对应的值(关闭列,但现在这不重要)。

我希望我想要实现的目标是可以理解的,我希望你能提供帮助。 :(

您可以通过同样使用 reshape 对每 20 列进行转置来实现此目的:

new_df = pd.DataFrame(df1.Close.values.reshape(-1, 20), 
                columns= ['Close'] + ['Close' + str(i) for i in range(1,20)])

如果我正确理解了您评论中 Target 列的要求,您希望将 df1 的 Target 列中的第 20 个值(包括第 1 行值)存储到 new_df 您可以使用 iloc 相同的:

new_df['Target'] = df1.iloc[::20].tolist()