Pandas:将一列数据移至另一列的同行位置
解决方法
针对这个需求,你可以用Pandas的fillna()方法结合列删除操作来实现,步骤如下:
- 用
QTY 2列的值填充QTY列的空值(因为每行仅一列有值,不会出现覆盖问题) - 删除多余的
QTY 2列
代码实现
import pandas as pd # 构造原DataFrame data = { 'Product': ['Shoes', 'Jumpers', 'T Shirts', 'Shorts'], 'QTY': [5, None, None, 13], 'QTY 2': [None, 10, 15, None] } df = pd.DataFrame(data) # 填充QTY列并删除QTY 2列 df['QTY'] = df['QTY'].fillna(df['QTY 2']) df = df.drop(columns=['QTY 2']) print(df)
输出结果
| Index | Product | QTY |
|---|---|---|
| 0 | Shoes | 5 |
| 1 | Jumpers | 10 |
| 2 | T Shirts | 15 |
| 3 | Shorts | 13 |
另外也可以用combine_first()方法实现相同效果,代码更简洁:
df['QTY'] = df['QTY'].combine_first(df['QTY 2']) df = df.drop(columns=['QTY 2'])
内容的提问来源于stack exchange,提问作者PythonBeginner
相关产品推荐
相关产品推荐

