Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 多列除法_Python_Pandas_Numpy - Fatal编程技术网

Python 多列除法

Python 多列除法,python,pandas,numpy,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 如何划分列,例如 罗斯代尔酒店 Trinity by Trinity_y 渴望的 Age Rosedale_r

我是熊猫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
如何划分列,例如

  • 罗斯代尔酒店
  • Trinity by Trinity_y
渴望的

Age   Rosedale_rate   Trinity_rate
0     0.01
1     0.03
2     0.02
3     0.03

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
用于增加安全性,以确保两个数据帧对齐。

df.Rosedale/df.Rosedale\u y
@mad\u。。。OP要求对~50列进行大规模除法。该正则表达式可以是
\u y$
,因此它保证以
\u y
结尾,并且不会以某种方式匹配列名称中的任何位置(不太可能-但是-您使用
reindex
:)您当前的正则表达式相当于使用
like=''y'
…@JonClements谢谢!