我有以下DataFrame
Integer
我想将>>> df = pd.DataFrame({'ap1_X':[1,2,3,4], 'as1_X':[1,2,3,4], 'ap2_X':[2,2,2,2], 'as2_X':[3,3,3,3]})
>>> df
ap1_X as1_X ap2_X as2_X
0 1 1 2 3
1 2 2 2 3
2 3 3 2 3
3 4 4 2 3
与ap1_X
相乘,然后将该值放入as1_X
,对于as1_X
与ap2_X
则类似。此处的通用标识符是as2_X
或ap
之后的数字。
最终的DataFrame应该看起来像这样
as
我知道我可以遍历各列,并将列名中具有相同第3个字符的列相乘,但是我想知道是否还有更多的“熊猫”方式?
更新:列名称中的数字ID可以是多个数字(例如:1、2,...,12,...,100)。因此,基本上,ID是“ ap”或“ as”与“ _X”之间的数字。
答案 0 :(得分:3)
您可以使用groupby
来axis=1
,并且密钥是公用号码
df.groupby(df.columns.str[2],axis=1).prod()
Out[73]:
1 2
0 1 6
1 4 6
2 9 6
3 16 6
答案 1 :(得分:2)