在 python 中学习了两个月,我现在正专注于Pandas。在我目前的职位上,我在数据帧上使用 VBA,因此学习它以慢慢取代它并促进我的职业生涯。到目前为止,我相信我真正的问题是缺乏对关键概念的理解。任何帮助将不胜感激。
这就是我的问题:
我可以去哪里了解更多关于如何做这样的事情以获得更精确的过滤。我非常接近,但我需要一个关键方面。
目标
主要目标我需要跳过我的 ID 列中的某些值。 下面的代码去掉了破折号“-”,最多只能读取 9 位数字。但是,我需要跳过某些 ID,因为它们是唯一的。
之后,我将开始比较多张纸。
- 主数据框 ID 的格式为 000-000-000-000
- 我将比较它的其他数据帧没有破折号“-”作为 000000000 和三个减去 000 的总九位数。
我需要跳过的唯一 ID 在两个数据帧中是相同的,但格式完全不同,范围为 000-000-000_#12、000-000-000_35 或 000-000-000_z。
我将在每个 ID 上使用的代码(唯一 ID 除外):
dfSS["ID"] = dfSS["ID"].str.replace("-", "").str[:9]
但我想使用类似的 if 语句(这不起作用)
lst = ["000-000-000_#69B", "000-000-000_a", "etc.. random IDs", ]
if ~dfSS["ID"].isin(lst ).any()
dfSS["ID"] = dfSS["ID"].str.replace("-", "").str[:9]
else:
pass
为了更清楚,我的输入 DataFrame 是这样的:
ID Street # Street Name
0 004-330-002-000 2272 Narnia
1 021-521-410-000_128 2311 Narnia
2 001-243-313-000 2235 Narnia
3 002-730-032-000 2149 Narnia
4 000-000-000_a 1234 Narnia
我希望将其作为输出:
ID Street # Street Name
0 004330002 2272 Narnia
1 021-521-410-000_128 2311 Narnia
2 001243313000 2235 Narnia
3 002730032000 2149 Narnia
4 000-000-000_a 1234 Narnia
笔记:
- dfSS 是我的 Dataframe 变量名,也就是我正在使用的 excel。“ID”是我的列标题。事后将使其成为索引
- 我在这项工作中的数据框很小,(行、列)的数量为(2500、125)
- 我没有收到错误消息,所以我猜也许我需要某种循环。也开始测试循环。那里没有运气......但是。
这是我一直在研究这个的地方: