pandas - 将 Pandas 中州和大学城的列转换为两列,第 1 列:州和第 2 列:关联的大学城
问题描述
我在 Pandas 中有一个系列,它是一列州,在每个州的下方,是该州的大学城。
例如
纽约:伊萨卡纽约市 北卡罗来纳州 达勒姆罗利等...
所有这些都在一列中,按状态字母顺序降序排列。
我必须通过在左侧创建一个新列来分隔这些数据,该列将是州列表,右侧是相关的大学城。例如
第 1 栏:纽约 / 第 2 栏:伊萨卡
除了为每个州手动输入字典以关联大学城之外,是否有一种优雅的方式来形成这些关联并创建两列结构?
谢谢!
解决方案
我假设您的示例数据(格式正确)是:
0 New York
1 Ithaca
2 New York City
3 North Carolina
4 Durham
5 Raleigh
dtype: object
每个“部门”(关于特定州)都从州名开始,然后有许多带有城市的单元 - 大学站点。
从创建仅包含状态名称的辅助系列开始。对于您的示例数据,仅限于 2 个状态,它可以是:
states = pd.Series(['New York', 'North Carolina'])
当然,在目标实现中包括所有状态名称。
然后,要生成结果,请运行:
result = s.groupby(s.isin(states).cumsum()).apply(
lambda grp: pd.DataFrame({'State': grp.iloc[0], 'City': grp.iloc[1:]}))\
.reset_index(drop=True)
对于您的样本数据,结果是:
State City
0 New York Ithaca
1 New York New York City
2 North Carolina Durham
3 North Carolina Raleigh
推荐阅读
- ffmpeg - ffmpeg AVStream::codecpar 为空
- windows - Cassandra 作为 Windows 服务无法启动
- angular - 在 Angular 中工作时丢失了 localhost:4200 中的内容
- html - 将信息连接到输入
- java - 运行 Android 10 的三星手机不显示录制的视频
- javascript - 避免下拉列表中的多个事件:ReactJS
- python - Django重置密码链接给出404
- javascript - 有没有办法指定模块的脚本完整性?
- ios - iOS:如何检测 webView 何时在特定部分/锚点处滚动
- reactjs - 路由更改时组件未卸载