在多列熊猫df上划分

时间:2018-08-29 20:23:41

标签: python pandas numpy

我是熊猫df,我需要在约50列之间进行质量划分

 Age  Rosedale   Rosedale_y   Trinity  Trinity_y.....etc until 50 more columns   
 0    1          100
 1    3          106
 2    2          109
 3    3          108

如何划分诸如

的列
  • Rosedale_y的Rosedale
  • Trinity by Trinity_y

所需

Age   Rosedale_rate   Trinity_rate
0     0.01
1     0.03
2     0.02
3     0.03

1 个答案:

答案 0 :(得分:1)

filter使您轻松选择所需的列,然后进行最后的划分。

df = df.set_index('Age')

i = df.filter(regex=r'_y$')
j = df[df.columns.difference(i.columns)]
i.columns = j.columns.str.split('_y').str[0]

df = j / i.reindex(j.columns, axis=1)

reindex用于提高安全性,以确保两个DataFrame对齐。