[英]Pandas: pairwise multiplication of columns based on column name
我有以下DataFrame
>>> 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
或as
之后的數字。
最終的DataFrame看起來應該是這樣的
>>> df
ap1_X as1_X ap2_X as2_X
0 1 1 2 6
1 2 4 2 6
2 3 9 2 6
3 4 16 2 6
我知道我可以循環遍歷列並將列名中具有相同第3個字符的列相乘,但我想知道是否有更多的“熊貓”方法嗎?
更新:列名中的數字ID可以是多個數字(例如:1,2,...,12,...,100)。 所以基本上,ID是'ap'或'as'和'_X'之間的數字。
您可以使用axis=1
進行groupby
,key是常用數字
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.