我有一个数据框df1
,例如:
name | group | col1 | col2 | col3 | col4 | col5
id1 | G1 |
id2 | G1 |
id3 | G1 |
id4 | G2 |
id5 | G2 |
id6 | G2 |
...
id10
col1
,col2
等的值是浮点型,> = 0。name
的值是字符串,其中每个名称唯一地标识每一行group
的值是字符串。此列描述名称的分组,为了完整起见,将其包括在内。还有另一个数据框df2
,例如:
name | group | col2 | col4 | col5 | col7 |
id11 | G1 |
id12 | G1 |
id13 | G1 |
id14 | G2 |
id15 | G2 |
id16 | G2 |
...
id20
name
和df1
之间没有通用的df2
值。 df2.group
还包含值G1
或G2
df2
的列可以是df1
的一部分(例如col2
,col4
和col5
),也可以是{{1} }(例如df2
)。 我希望像这样合并这两个数据框:
col7
name | group | col1 | col2 | col3 | col4 | col5 | col7
id1 | G1 | | 0
id2 | G1 | | 0
id3 | G1 | | 0
id4 | G2 | | 0
...
id10 | G2 | 0 | | 0 | | |
id11 | G1 | 0 | | 0 | | |
id12 | G1 | 0 | | 0 | | |
...
id20
的行追加到df2
,并获得其列的集合并集。df1
中没有col7
,因此在合并的数据框中,所有源自df1
的行在df1
下的值为0。对于源自col7
的所有行以及df2
唯一的列col1
和col3
的所有列相同。 答案 0 :(得分:0)
原来比我想象的要容易得多
df_union_all= pd.concat([df1, df2])