Pandas如何基于已有列的列名和取值生成2个新列并扩展行
实现方法
你要的效果可以通过拆分两部分数据再拼接实现,代码示例如下:
import pandas as pd import numpy as np # 假设你的原始DataFrame变量名为df # 第一部分:保留原数据所有列,新增Col 5、Col 6对应Col 3的列名和值 part1 = df.copy() part1['Col 5'] = 'Col 3' part1['Col 6'] = part1['Col 3'] # 第二部分:构造前四列为空的结构,Col 5、Col 6对应Col 4的列名和值 part2 = pd.DataFrame(np.nan, index=df.index, columns=part1.columns) part2['Col 5'] = 'col 4' # 和示例一致使用小写的话就用这个值,要大写改回'Col 4'即可 part2['Col 6'] = df['Col 4'].values # 上下拼接两部分,重置索引得到最终结果 result = pd.concat([part1, part2], ignore_index=True)
如果有更多列需要做类似展开,可以遍历列名循环生成对应的part后统一拼接,两列场景下上面的写法最直观不易出错。
内容的提问来源于stack exchange,提问作者diastfw
相关产品推荐
相关产品推荐

