Pandas 按索引值划分数据帧

cmf*_*f05 5 python indexing dataframe pandas

我正在尝试按索引划分数据框中的所有列。(1221 行,1000 列)

           5000058004097  5000058022936  5000058036940  5000058036827  \

91.0        3.667246e+10   3.731947e+12   2.792220e+14   2.691262e+13   
94.0        9.869027e+10   1.004314e+13   7.514220e+14   7.242529e+13   
96.0        2.536914e+11   2.581673e+13   1.931592e+15   1.861752e+14
...
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的代码...

A = SHIGH.divide(SHIGH.index, axis =1) 
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

ValueError: operands could not be broadcast together with shapes (1221,1000) (1221,) 
Run Code Online (Sandbox Code Playgroud)

我也试过

A = SHIGH.divide(SHIGH.index.values.tolist(), axis =1)
Run Code Online (Sandbox Code Playgroud)

并且还重新索引并使用该列进行划分并得到相同的错误。

如果有人可以指出我的错误,将不胜感激。

EdC*_*ica 2

您需要将Index对象转换为Series

df.div(df.index.to_series(), axis=0)
Run Code Online (Sandbox Code Playgroud)

例子:

In [118]:
df = pd.DataFrame(np.random.randn(5,3))
df

Out[118]:
          0         1         2
0  0.828540 -0.574005 -0.535122
1 -0.126242  2.152599 -1.356933
2  0.289270 -0.663178 -0.374691
3 -0.016866 -0.760110 -1.696402
4  0.130580 -1.043561  0.789491

In [124]:
df.div(df.index.to_series(), axis=0)

Out[124]:
          0         1         2
0       inf      -inf      -inf
1 -0.126242  2.152599 -1.356933
2  0.144635 -0.331589 -0.187345
3 -0.005622 -0.253370 -0.565467
4  0.032645 -0.260890  0.197373
Run Code Online (Sandbox Code Playgroud)