如何将Pandas DataFrame中Place列的列表值拆分为多行?
解决方法
直接用Pandas内置的explode()方法就能搞定,这是专门处理这类「将列中列表元素拆分为单独行」需求的工具,步骤如下:
- 先构造你提供的示例DataFrame:
import pandas as pd df = pd.DataFrame({ 'Language': ['Tamil', 'Kerala'], 'Capital': ['Chennai', 'Kochi'], 'Place': [['Chennai', 'Vellore', 'Trichy', 'Madurai'], ['Kochi', 'Trivandrum']] })
- 对
Place列执行explode操作:
result_df = df.explode('Place')
- 输出结果就是你要的格式:
Language Capital Place 0 Tamil Chennai Chennai 0 Tamil Chennai Vellore 0 Tamil Chennai Trichy 0 Tamil Chennai Madurai 1 Kerala Kochi Kochi 1 Kerala Kochi Trivandrum
这个方法会自动把Place列里的每个列表元素单独拆成一行,同时保留Language和Capital列的对应值,比你尝试的转置、转Series方法更直接精准。
内容的提问来源于stack exchange,提问作者Jim Macaulay
相关产品推荐
相关产品推荐

