J-H*_*J-H 3 python performance dataframe pandas
这是实现以下目标的最快方法:
我正在使用Pandas Dataframe(NxN),我想迭代每一行和每个元素,以检查元素是否大于行的意思.如果它更大,我想将元素值更改为1.
我使用以下方法计算平均值:
mean_value = df.ix[elementid].mean(axis=0)
Run Code Online (Sandbox Code Playgroud)
但迭代每个元素并使用嵌套循环检查它是否> = mean_value非常慢.
print df
a b c
0 0 1 2
1 0 1 2
2 1 1 2
3 1 0 1
4 1 1 2
5 0 0 1
mean_value = df.mean(axis=1)
print mean_value
0 1.000000
1 1.000000
2 1.333333
3 0.666667
4 1.333333
5 0.333333
mask = df.ge(mean_value, axis=0)
print mask
a b c
0 False True True
1 False True True
2 False False True
3 True False True
4 False False True
5 False False True
print df.mask(mask, 1)
a b c
0 0 1 1
1 0 1 1
2 1 1 1
3 1 0 1
4 1 1 1
5 0 0 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
525 次 |
| 最近记录: |