通过数据框中的列表 len 复制行并将它们添加为索引
Posted
技术标签:
【中文标题】通过数据框中的列表 len 复制行并将它们添加为索引【英文标题】:Duplicate rows by list len in dataframe and add them as index 【发布时间】:2020-08-30 16:47:15 【问题描述】:我有一个数据框,其中一列在列表格式中包含 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]
我需要执行以下操作: - 在“国家/地区”中按列表长度复制行数(例如,第一行将被复制两次) - 对于每一行,我需要将列表元素之一作为索引(例如,其中一个是捷克***,另一行是新加坡,另一行是英国作为索引)。
有人知道我该怎么做吗?
谢谢!
【问题讨论】:
【参考方案1】:您可以使用.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')
【讨论】:
您好 Rene,感谢您的快速回复!我收到数据框没有属性“explode”的错误 你用的是什么版本的熊猫? 是的,刚刚检查我需要更新 Pandas 版本,谢谢!以上是关于通过数据框中的列表 len 复制行并将它们添加为索引的主要内容,如果未能解决你的问题,请参考以下文章
将 pandas 数据框中的一些行添加到下一个,然后删除它们