如何添加两个仅由后缀参数(例如“ A_x”,“ A_y”)不同的熊猫数据框列,并用“ A”重命名这两个列。
例如,我有这样的数据 enter image description here
必须将这些列重命名为没有任何后缀,例如CT_1或CT_2等。
答案 0 :(得分:1)
使用:
df = pd.DataFrame([np.arange(6)], columns=['a','s','CT_1_x','CT_1_y','CT_2_x','CT_2_y'])
print (df)
a s CT_1_x CT_1_y CT_2_x CT_2_y
0 0 1 2 3 4 5
df = df.set_index(['a','s']).groupby(lambda x: x.rsplit('_', 1)[0], axis=1).sum().reset_index()
print (df)
a s CT_1 CT_2
0 0 1 5 9
答案 1 :(得分:0)
要添加两列
df['A'] = df['A_x'] + df['A_y']
,如果要删除原始列
df.drop(columns = ['A_x','A_y'])
如果您无法手动键入col2sum = ['A_1', 'A_2', ...]
这样的列,最好的方法是将df转换为长格式。
dfm = melt(df, id_vars = ???, value_vars = col2sum)
然后从那里去(例如groupby
)。