我有熊猫系列,我可以得到下面给出的平均值。
private void callApi() {
String imei_no = getArguments().getString("imei_no");
String latitude = getArguments().getString("lat");
String longitude = getArguments().getString("long");
String postal_code = getArguments().getString("postal_code");
}
但是我必须在下面的dict中选择基于操作/功能的键。
>>> s = pd.Series(np.random.randn(5))
>>> s
0 -0.426981
1 1.322446
2 -1.505474
3 0.411286
4 0.431440
dtype: float64
>>> s.mean()
0.046543382190213201
>>> s.max()
1.3224457683044697
如何根据变量opType获得系列的均值/最大值等。我希望在程序中避免使用其他许多内容。请帮忙 。
答案 0 :(得分:1)
如果稍微更改字典,可以使用pd.Series.agg
pfync = {
'average': 'mean',
'maximin': 'max',
'minimum': 'min',
'Standard deviation': 'std'
}
s.agg(pfync['average'])
0.046543382190213201
如果你不能修改字典,只需剥掉括号。
s.agg(pfync['average'].strip('()'))
0.046543382190213201
对于0.20
之前的旧版熊猫,您可以使用__getattr__
s.__getattr__(pfync['average'])()
答案 1 :(得分:0)
您还可以使用eval获取您要查找的值。不确定用例是什么,所以我打印出值。
import numpy as np
import pandas as pd
pfync = {
'average': 'mean()',
'maximin': 'max()',
'minimum': 'min()',
'Standard deviation': 'std()'
}
s = pd.Series(np.random.randn(5))
for k, v in pfync.iteritems():
print v
print eval('s.'+v), '\n'