如何用Pandas拆分DataFrame列并合并同名列求和?
Pandas实现列拆分与同名列求和合并
步骤1:构造原始DataFrame
先把给定的原始数据转换成Pandas DataFrame:
import pandas as pd data = { '(A,B)': [0, 1, 2], '(B,C)': [3, 1, 2], '(D,B)': [0, 3, 4], '(E,F)': [1, 0, 2] } df = pd.DataFrame(data)
步骤2:拆分列
遍历每个原始列,去掉列名的括号并拆分成两个字段,为每个字段生成值与原列相同的新列,最后横向拼接所有新列:
split_cols = [] for col in df.columns: # 提取列名里的两个字段 col1, col2 = col.strip('()').split(',') # 生成对应两个新列 split_cols.append(pd.DataFrame({col1: df[col], col2: df[col]})) # 拼接所有拆分后的列 df_split = pd.concat(split_cols, axis=1)
执行后得到拆分结果:
A B B C D B E F 0 0 0 3 3 0 0 1 1 1 1 1 1 1 3 3 0 0 2 2 2 2 2 4 4 2 2
步骤3:合并同名列求和
通过按列名分组并求和,完成同名列的合并:
df_final = df_split.groupby(df_split.columns, axis=1).sum()
最终结果如下:
A B C D E F 0 0 3 3 0 1 1 1 1 5 1 3 0 0 2 2 6 2 4 2 2
内容的提问来源于stack exchange,提问作者karthik
相关产品推荐
相关产品推荐

