假设我有一个数据帧:
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.rand(4,5), columns = list('abcde'))
Run Code Online (Sandbox Code Playgroud)
我想df.a从所有其他列中减去列中的条目.换句话说,我想获得一个数据框,其中包含以下列的列:
| col_b - col_a| col_c - col_a| col_d - col_a|
我试过df - df.a但这会产生一些奇怪的东西:
0 1 2 3 a b c d e
0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN NaN
Run Code Online (Sandbox Code Playgroud)
我怎样才能在Pandas中进行这种类型的列式操作?另外,只是想知道,该怎么df -df.a办?
你可能想要
>>> df.sub(df.a, axis=0)
a b c d e
0 0 0.112285 0.267105 0.365407 -0.159907
1 0 0.380421 0.119536 0.356203 0.096637
2 0 -0.100310 -0.180927 0.112677 0.260202
3 0 0.653642 0.566408 0.086720 0.256536
Run Code Online (Sandbox Code Playgroud)
df-df.a基本上是尝试沿着另一个轴进行减法,因此索引不匹配,并且当使用二进制运算符(如减法"不匹配的索引将联合在一起")时(正如文档所说).由于指数不匹配,你结束了
0 1 2 3 a b c d e.
例如,您可以通过转置事物更间接地到达同一目的地
(df.T - df.a).T,通过翻转df意味着默认轴现在是正确的.
| 归档时间: |
|
| 查看次数: |
1754 次 |
| 最近记录: |