我有两个格式相同的pandas数据表,都是3行6列。a表1,2,3列有数据,4,5,6l列为nan。b表4,5,6列有数据,1,2,3列为nan。我现在想让第一个表的4,5,6列变为第二个表的4,5,6列,现在想把a表的空的部分用b表有的部分填充,该怎么拼接到一起?
时间: 2024-05-12 12:16:13 浏览: 59
您可以使用pandas中的fillna()方法来实现这个目的。具体步骤如下:
1. 将a表和b表按列方向合并成一个新的表c,使用concat()方法即可。
```python
import pandas as pd
a = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7, 8, 9]})
b = pd.DataFrame({'col4': [10, 11, 12], 'col5': [13, 14, 15], 'col6': [16, 17, 18]})
c = pd.concat([a, b], axis=1)
```
2. 使用fillna()方法,将c表中空值使用对应的值填充。
```python
c.fillna(value=b, inplace=True)
```
这里我们将b表作为填充值进行填充,inplace=True表示对c表直接进行填充,而不是创建新的表。
完整代码如下:
```python
import pandas as pd
a = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7, 8, 9]})
b = pd.DataFrame({'col4': [10, 11, 12], 'col5': [13, 14, 15], 'col6': [16, 17, 18]})
c = pd.concat([a, b], axis=1)
c.fillna(value=b, inplace=True)
```
运行完后,c表中的空值就被填充为b表中的对应值了。
阅读全文