在Pandas中实现特定字符串在列间迁移的方法
迁移Pandas DataFrame中"Reduced on"数据到新列的实现方法
场景说明
现有如下房产信息DataFrame,Added on列中混有Reduced on ...格式的数据,需要将这类数据迁移至新建的Reduced on列,并清理原列的无效内容:
| Address | Added on |
|---|---|
| 15 Smith Close | Added on 17/11/22 |
| 1 Apple Drive | Reduced on 19/11/22 |
| 27 Pride place | Added on 18/1//22 |
具体实现步骤
- 构造示例DataFrame(可跳过,直接用你现有数据)
import pandas as pd data = { "Address": ["15 Smith Close", "1 Apple Drive", "27 Pride place"], "Added on": ["Added on 17/11/22", "Reduced on 19/11/22", "Added on 18/1//22"] } df = pd.DataFrame(data)
- 新建
Reduced on列并提取对应数据
用正则表达式匹配Reduced on开头的内容,提取到新列中:
df["Reduced on"] = df["Added on"].str.extract(r'(Reduced on \d{2}/\d{2}/\d{2})')
- 清理原
Added on列
只保留包含Added on的有效内容,其余替换为缺失值:
df["Added on"] = df["Added on"].where(df["Added on"].str.contains("Added on"), pd.NA)
处理后的结果
执行上述代码后,DataFrame会变为:
| Address | Added on | Reduced on |
|---|---|---|
| 15 Smith Close | Added on 17/11/22 | NaN |
| 1 Apple Drive | NaN | Reduced on 19/11/22 |
| 27 Pride place | Added on 18/1//22 | NaN |
可选:转换日期格式
如果需要将日期字符串转为datetime类型,方便后续分析,可以添加以下代码:
# 转换Added on列日期 df["Added on"] = pd.to_datetime(df["Added on"].str.replace("Added on ", ""), errors="coerce") # 转换Reduced on列日期 df["Reduced on"] = pd.to_datetime(df["Reduced on"].str.replace("Reduced on ", ""), errors="coerce")
内容的提问来源于stack exchange,提问作者Robin Baggott la Velle
相关产品推荐
相关产品推荐

