有没有一种方法可以在多个列上拆分和分解?这可能是一个基本的任务,但我现在一片空白,
My pandas dataframe:
| 姓名|标题|城市|国家|来源|
| --------------|--------------|--------------|--------------|--------------|
| 哈利·威尔斯|数据科学家;数据分析员;数学家|巴黎;苏瓦;巴黎|斐济;法国|联系我们|
| 布朗·利维|数据科学家;数据分析师|赫尔辛基;柏林|芬兰;德国|Kaggle|
| 格蕾丝·卡利|数据分析员;数学家|雅典;布达佩斯|希腊;匈牙利|Kaggle|
| 埃文·詹姆斯|ML工程师;开发人员|东京;利马|日本;秘鲁|谷歌|
目前,我的代码一次只能处理一列:
df2 =(df.set_index(['Name','Source']) #Columns that won't be touched by the index
.apply(lambda x: x.str.split(';').explode()) #split on the ; [its actually a pipe(|) but for visual purposes I used a ;]
.reset_index())
**注意:上面的代码通常对我有用,但我通常在一列上使用它。
所需输出:
| 姓名|标题|城市|国家|来源|
| --------------|--------------|--------------|--------------|--------------|
| 哈利·威尔斯|数据科学家|巴黎|法国|联系我们|
| 哈利·威尔斯|数据分析师|苏瓦|斐济|联系我们|
| 哈利·威尔斯|数学家|巴黎|法国|联系我们|
| 布朗·利维|数据科学家|赫尔辛基|芬兰|Kaggle|
| 布朗·利维|数据分析师|柏林|德国|Kaggle|
| 格蕾丝·卡利|数据分析师|雅典|希腊|Kaggle|
| 格蕾丝·卡利|数学家|布达佩斯|匈牙利|Kaggle|
| 埃文·詹姆斯|ML工程师|东京|日本|谷歌|
| 埃文·詹姆斯|开发人员|利马|秘鲁|谷歌|
2条答案
按热度按时间vpfxa7rd1#
首先拆分,然后执行普通的多列分解。例如:
wmomyfyw2#
下面是另一种使用apply而不是字典理解和解包的方法:
输出: