问题:如何合并两个数据帧?
我正在使用Pandas数据框。我说有一个初始数据框D
。我从中提取两个数据帧,如下所示:
A = D[D.label == k]
B = D[D.label != k]
然后我更改标签中A
和B
A.label = 1
B.label = -1
我想将A和B结合起来,这样我就可以将它们作为一个数据帧使用,类似于联合操作。数据的顺序并不重要。但是,当我们从D采样A和B时,它们保留了D的索引。
回答 0
我相信你可以使用该append
方法
bigdata = data1.append(data2, ignore_index=True)
保持索引只是不使用ignore_index
关键字…
回答 1
您还可以使用pd.concat
,当您连接两个以上数据框时,这特别有用:
bigdata = pd.concat([data1, data2], ignore_index=True, sort=False)
回答 2
如果有人发现它有用,可以考虑在此处添加它。@ostrokach已经提到了如何合并跨行的数据框,即
df_row_merged = pd.concat([df_a, df_b], ignore_index=True)
要跨列合并,可以使用以下语法:
df_col_merged = pd.concat([df_a, df_b], axis=1)
回答 3
对于正在处理大数据并需要连接多个数据集的情况,还有另一种解决方案。concat
可能会提高性能,因此,如果您不想每次都创建新的df,则可以使用列表推导:
frames = [ process_file(f) for f in dataset_files ]
result = pd.append(frames)
注意:但是,值得注意的是,
concat
(并因此append
)制作了数据的完整副本,并且不断地重用此功能可能会严重影响性能。如果需要对多个数据集使用该操作,请使用列表推导。
回答 4
如果要用df1
第二个数据帧的值更新/替换第一个数据帧的值df2
。您可以按照以下步骤进行操作-
步骤1:设置第一个数据帧(df1)的索引
df1.set_index('id')
步骤2:设置第二个数据帧(df2)的索引
df2.set_index('id')
最后使用以下代码段更新数据框-
df1.update(df2)
回答 5
第一个数据帧
train.shape
结果:-
(31962, 3)
第二个数据帧
test.shape
结果:-
(17197, 2)
结合
new_data=train.append(test,ignore_index=True)
检查一下
new_data.shape
结果:-
(49159, 3)
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。