我正在使用熊猫数据框。我有一个初始数据框,比如说D
。我像这样从中提取两个数据框:
A = D[D.label == k]
B = D[D.label != k]
我想合并A
,B
所以我可以将它们作为一个 DataFrame,类似于联合操作。数据的顺序并不重要。但是,当我们从中采样时A
,它们会保留从 中的索引。B
D
D
弃用通知:
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)