我有以下数据帧:
数据帧1:
|---------------------|------------------|
| property_id | beds |
|---------------------|------------------|
| 1 | 1 |
|---------------------|------------------|
| 2 | 2 |
|---------------------|------------------|
Run Code Online (Sandbox Code Playgroud)
数据帧2:
|---------------------|
| property_id |
|---------------------|
| 3 |
|---------------------|
| 4 |
|---------------------|
Run Code Online (Sandbox Code Playgroud)
我想要生成的是以下Dataframe:
|---------------------|------------------|
| property_id | beds |
|---------------------|------------------|
| 1 | 1 |
|---------------------|------------------|
| 2 | 2 |
|---------------------|------------------|
| 3 | 0 |
|---------------------|------------------|
| 4 | 0 |
|---------------------|------------------|
Run Code Online (Sandbox Code Playgroud)
我想要的是连接两个Dataframe,前者有比后者更多的列,但后者的所有列都在前者.当后一个数据帧中不存在该列时,我想将默认值设置为0.如何实现此目的?
df1 = pd.DataFrame({'property_id': [1, 2], 'beds': [1, 2]})
df2 = pd.DataFrame({'property_id': [3, 4]})
Run Code Online (Sandbox Code Playgroud)
我几乎没有大熊猫的经验,所以我该怎么办?
Psi*_*dom 11
你可以使用pandas.concat或者append方法,这两种方法都会NA为子数据框中不存在的列生成,用零填充它们,你可以使用fillna(0):
df1.append(df2).fillna(0)
# beds property_id
#0 1.0 1
#1 2.0 2
#0 0.0 3
#1 0.0 4
pd.concat([df1, df2]).fillna(0)
# beds property_id
#0 1.0 1
#1 2.0 2
#0 0.0 3
#1 0.0 4
Run Code Online (Sandbox Code Playgroud)
df1.append(df2.reindex_axis(df1.columns, 1, fill_value=0))
Run Code Online (Sandbox Code Playgroud)
优点是应该保留整数类型