rfe*_*and 5 python concatenation append dataframe pandas
我有两个数据框,如下所示:
df1=
A B
1 A1 B1
2 A2 B2
3 A3 B3
df2 =
A C
4 A4 C4
5 A5 C5
Run Code Online (Sandbox Code Playgroud)
我想附加df2到df1,如下所示:
A B
1 A1 B1
2 A2 B2
3 A3 B3
4 A4 NaN
5 A5 NaN
Run Code Online (Sandbox Code Playgroud)
(注意:我已经编辑了数据框,因此并非所有列都df1必须在df2)
无论我使用concat或append,我得到的结果数据帧都会有一个名为“C”的列,前三行填充为nan。我只想保留两个原始列df1,并附加新值。有没有一种方法可以连接数据帧而不必随后删除额外的列?
您可以首先过滤要附加的列subset:
print (df2[['A']])
A
4 A4
5 A5
print (pd.concat([df1, df2[['A']]]))
A B
1 A1 B1
2 A2 B2
3 A3 B3
4 A4 NaN
5 A5 NaN
print (df1.append(df2[['A']]))
A B
1 A1 B1
2 A2 B2
3 A3 B3
4 A4 NaN
5 A5 NaN
Run Code Online (Sandbox Code Playgroud)
print (df2[['A','B']])
A B
4 A4 B4
5 A5 B5
print (pd.concat([df1, df2[['A','B']]]))
A B
1 A1 B1
2 A2 B2
3 A3 B3
4 A4 B4
5 A5 B5
Run Code Online (Sandbox Code Playgroud)
或者:
print (df1.append(df2[['A','B']]))
A B
1 A1 B1
2 A2 B2
3 A3 B3
4 A4 B4
5 A5 B5
Run Code Online (Sandbox Code Playgroud)
按评论编辑:
df1如果和中的列df2具有不同的列,请使用intersection:
print (df1)
A B D
1 A1 B1 R
2 A2 B2 T
3 A3 B3 E
print (df2)
A B C
4 A4 B4 C4
5 A5 B5 C5
print (df1.columns.intersection(df2.columns))
Index(['A', 'B'], dtype='object')
print (pd.concat([df1, df2[df1.columns.intersection(df2.columns)]]))
A B D
1 A1 B1 R
2 A2 B2 T
3 A3 B3 E
4 A4 B4 NaN
5 A5 B5 NaN
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7346 次 |
| 最近记录: |