python - 通过数据框中的列表 len 复制行并将它们添加为索引
问题描述
我有一个数据框,其中一列在列表格式中包含 2 个或更多元素,如下所示:
Email Country
0 john@gmail.com [Czech Republic, Singapore, United Kingdom]
1 Davies2@gmeail.com [Singapore, United Kingdom]
2 SooEng@gmail.com [United Kingdom, Czech Republic]
我需要执行以下操作: - 在“国家/地区”中按列表长度复制行数(例如,第一行将重复两次) - 对于每一行,我需要将列表元素中的一个作为索引(例如,其中一个是捷克共和国,另一排是新加坡,另一排是英国作为索引)。
有人知道我该怎么做吗?
谢谢!
解决方案
您可以使用.explode()
“复制”行:
import pandas as pd
df = pd.DataFrame([['john@gmail.com', ['Czech Republic', 'Singapore', 'United Kingdom']],
['Davies2@gmeail.com', ['Singapore', 'United Kingdom']],
['SooEng@gmail.com', ['United Kingdom', 'Czech Republic']]
], columns = ['Email', 'Country'])
df.explode('Country')
结果:
Email Country
0 john@gmail.com Czech Republic
0 john@gmail.com Singapore
0 john@gmail.com United Kingdom
1 Davies2@gmeail.com Singapore
1 Davies2@gmeail.com United Kingdom
2 SooEng@gmail.com United Kingdom
2 SooEng@gmail.com Czech Republic
要设置索引,请使用:
df.explode('Country').set_index('Country')
推荐阅读
- ag-grid - 通过拖动和行分组根据行数据使 rowDrag 有条件
- neo4j - 如何从 CE 版本中删除 NEO4J
- javascript - 正则表达式匹配双引号内的每个字符串并包含转义引号
- android - ScrollView 内的指南 - 使用 Viewport %
- reactjs - 为什么在 Next.js 中使用 Link 时会重新加载页面?
- openssl - TLS1.3 OpenSSL tls alert unrecognized_name do not appear
- c - CMake 构建可执行文件时未定义和重复的符号。Fortran77 C 混合
- mysql - Dart Angular 和 mySql
- javascript - React:main.js 和 index.js 基本一样吗?
- python - 有没有办法在 python 中矢量化 Renko 计算?