python - 是否有根据其他列值过滤列值的功能?
问题描述
首先,嗨 Stackoverflow.. 我是新来的,我会尽我所能写一个问题。
我有以下DF:
**Adress Postalcode City
0 Hammer Landstraße 91 41460 Neuss 41460 Neuss
1 Grebbeberglaan 15 unit 5 B 3527VX Utrecht 3527VX Utrecht
2 Brink 88b 7411 BX, Deventer Nederland 7411 BX Deventer
3 Flevolaan 58 Postbus 399 1380 AJ Weesp 1380 AJ Weesp
我正在尝试根据邮政编码和城市值过滤地址列!我只是不知道如何:(
我想要的输出将是:
**Adress Postalcode City
0 Hammer Landstraße 91 41460 Neuss
1 Grebbeberglaan 15 unit 5 B 3527VX Utrecht
2 Brink 88b Nederland 7411 BX Deventer
3 Flevolaan 58 Postbus 399 1380 AJ Weesp
我尝试了以下方法:
df1['Adress'] = filter(lambda i: not regex.search(df1[Postalcode]), df1[str('Adress')]).
所以我想保留所有行,但根据其他两列的值更新(读取:删除) Adress 列的值。
但是,这将返回 df1 Adress 列的过滤器对象。你们中的任何人都可以帮助我吗?
任何提示我改进提问的方法总是受欢迎的!
解决方案
您是否正在寻找这样的东西:
import pandas as pd
data = [['Hammer Landstraße 91 41460 Neuss', "41460", "Neuss"], ['Brink 88b 7411 BX, Deventer Nederland', "7411 BX", "Deventer"]]
df = pd.DataFrame(data, columns = ['Address', 'Postalcode', 'City'])
df['Address'] = df.apply(lambda x: x['Address'].replace(x['Postalcode'], ''), axis=1)
df['Address'] = df.apply(lambda x: x['Address'].replace(x['City'], ''), axis=1)
df['Address'] = df.apply(lambda x: x['Address'].replace(', ', ''), axis=1)
最后一个只是删除逗号,可以合并为单行,但这对可见性更好
输出:
Address Postalcode City
0 Hammer Landstraße 91 41460 Neuss
1 Brink 88b Nederland 7411 BX Deventer
推荐阅读
- python - Flask 端点 - 处理请求或端点本身中的数据?
- android - “Gdx”类在 libgdx 中做了什么?
- python-3.x - 如何更新 tksheet 中的窗口(表)表?
- magento - 在 Magento 2.4.0 版本的网络控制台中,估计运输方法的响应中出现了运输方法
- sas - SAS EG 在自动化时无错误地失败
- flutter - 在堆叠架构中触发 viewModel 重新加载的最佳方法
- mysql - 导入 1 GB(约 600,000 条记录)的 excel 文件以导入 MySQL 数据库的最佳方法
- python - 我的输出列表中没有添加任何内容。谁能解释为什么
- mysql - 查找连续 0 的 SQL
- javascript - Vue 3 传送到元素并替换内容