我正在使用熊猫数据框。我有一个初始数据框,比如说D。我像这样从中提取两个数据框:
A = D[D.label == k]
B = D[D.label != k]
我想合并A,B所以我可以将它们作为一个 DataFrame,类似于联合操作。数据的顺序并不重要。但是,当我们从中采样时A,它们会保留从 中的索引。BDD
弃用通知:
DataFrame.append并在 v1.4.0Series.append中弃用
我相信你可以使用该append方法
bigdata = data1.append(data2, ignore_index=True)
保持他们的索引只是不使用ignore_index关键字......
您也可以使用pd.concat,当您加入两个以上的数据框时,这特别有用:
bigdata = pd.concat([data1, data2], ignore_index=True, sort=False)
想在这里添加它,以防有人发现它有用。@ostrokach 已经提到如何跨行合并数据框
df_row_merged = pd.concat([df_a, df_b], ignore_index=True)
要跨列合并,可以使用以下语法:
df_col_merged = pd.concat([df_a, df_b], axis=1)
如果您正在处理大数据并且需要连接多个数据集,则多次调用concat可能会占用大量性能。
如果您不想每次都创建新的 df,则可以改为聚合更改并concat仅调用一次:
frames = [df_A, df_B] # Or perform operations on the DFs
result = pd.concat(frames)
这在本节底部连接对象下的 pandas 文档中指出):
注意:然而值得注意的是,
concat(因此append)制作了数据的完整副本,并且不断重用此函数可能会对性能产生重大影响。如果您需要对多个数据集使用该操作,请使用列表推导。
如果您想df1用第二个数据帧的值更新/替换第一个数据帧的值df2。你可以按照以下步骤来做——</p>
第 1 步:设置第一个数据帧的索引(df1)
df1.set_index('id')
第 2 步:设置第二个数据帧的索引(df2)
df2.set_index('id')
最后使用以下代码片段更新数据框 —</p>
df1.update(df2)