python - Python:有没有更简单的方法在 pandas DataFrame 上应用 map()?
问题描述
我创建了一个布尔目录并应用到来自同一个 DataFrame (star_wars) 的六个不同系列。它有效,但好奇是否有比仅更改列标题重复相同语法更简单的方法?
seen_boolean = {'Star Wars: Episode I The Phantom Menace': 'Yes', 'NaN': 'No', 'Star Wars: Episode II Attack of the Clones': 'Yes', 'Star Wars: Episode III Revenge of the Sith': 'Yes', 'Star Wars: Episode IV A New Hope': 'Yes', 'Star Wars: Episode V The Empire Strikes Back': 'Yes', 'Star Wars: Episode VI Return of the Jedi': 'Yes'}
star_wars['seen_1'] = star_wars['seen_1'].map(seen_boolean)
star_wars['seen_2'] = star_wars['seen_2'].map(seen_boolean)
star_wars['seen_3'] = star_wars['seen_3'].map(seen_boolean)
star_wars['seen_4'] = star_wars['seen_4'].map(seen_boolean)
star_wars['seen_5'] = star_wars['seen_5'].map(seen_boolean)
star_wars['seen_6'] = star_wars['seen_6'].map(seen_boolean)
解决方案
我想到了两种方法:
堆栈/取消堆栈:
star_wars.stack().map(seen_boolean).unstack()
通过默认的 pandas 迭代器(但不是真正的优雅/Pandas 风格)循环遍历你的列:
for col in star_wars:
star_wars[col] = star_wars[col].map(seen_boolean)
推荐阅读
- python - 大型数据集的 Numpy
- swift - UIScrollView contentOffset 在点击时重置
- javascript - MediaElementJS 播放器 + 重新加载 HLS 流 - 任何解决方案?
- java - 如何将 Java 对象从一个类传递到另一个类
- unity3d - 如何在 Unity 中使用纯 ECS(实体组件系统)添加自定义行为?
- ios - CollectionViewCell 中标签中的数据有时会在重新加载时刷新,有时则不会
- ios - 沿画线放置 UILabel
- react-native - 在子视图中获取 apollo 客户端以手动使用查询
- python - 获取嵌套字典中字典值的数量
- java - 从 url 读取 csv 文件