添加两个熊猫数据框列,它们的唯一区别是后缀参数,例如“ A_x”,“ A_y”,并用“ A”重命名这两个列

如何添加两个仅由后缀参数(例如“ A_x”,“ A_y”)不同的熊猫数据框列,并用“ A”重命名这两个列。

例如,我有这样的数据 enter image description here

必须将这些列重命名为没有任何后缀,例如CT_1或CT_2等。

dongyingyifeng 回答:添加两个熊猫数据框列,它们的唯一区别是后缀参数,例如“ A_x”,“ A_y”,并用“ A”重命名这两个列

使用:

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
,

要添加两列

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)。

本文链接:https://www.f2er.com/3161908.html

大家都在问