如何在Python Pandas中将一行的部分内容拆分至新行?
解决重复列DataFrame拆分多行的问题
这问题我之前处理过类似的场景,用Pandas可以通过拆分列组+重命名+垂直拼接的思路轻松解决,我给你一步步演示具体操作:
1. 先构造你的示例DataFrame
首先我们还原你描述的重复列结构:
import pandas as pd df = pd.DataFrame( [['Netflix', '5.00$', 4.1, 'Netflix', '2.00$', 3.1]], columns=['App_Name', 'Price', 'Rating', 'App_Name', 'Price', 'Rating'] )
此时df的结构就是你提到的重复列形式。
2. 核心处理步骤
我们的思路是把重复的列拆分成多个独立的小DataFrame(每个小DF对应一组App_Name-Price-Rating),然后把这些小DF拼接到一起:
# 定义单个数据块的列数(这里每组是3列) chunk_size = 3 # 拆分列、重命名、拼接 result = pd.concat( # 遍历所有列,按chunk_size拆分出每个子块,并重命名列 [df.iloc[:, i:i+chunk_size].set_axis(['App_Name', 'Price', 'Rating'], axis=1) for i in range(0, len(df.columns), chunk_size)], # 拼接后重置索引,避免索引重复 ignore_index=True )
3. 查看结果
运行后打印result就能得到你想要的结构:
App_Name Price Rating 0 Netflix 5.00$ 4.1 1 Netflix 2.00$ 3.1
扩展说明
如果你的DataFrame里列重复次数更多(比如3组、4组重复列),这个方法依然适用——只需要保证chunk_size设置为单个数据块的列数(这里是3)即可,代码不需要做其他修改。
内容的提问来源于stack exchange,提问作者tomer schmid
相关产品推荐
相关产品推荐

