微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从python中的列表中提取数据

如何解决从python中的列表中提取数据

我有以下列表:

[N               12.000000
 mean             2.011608
 median           2.021611
 std              0.572034
 relative std     0.284350
 dtype: float64,N               12.000000
 mean             2.011608
 median           2.021611
 std              0.571815
 relative std     0.284262
 dtype: float64,N               12.000000
 mean             2.011608
 median           2.021611
 std              0.572101
 relative std     0.284412
 dtype: float64,N               12.000000
 mean             2.011608
 median           2.021611
 std              0.572115
 relative std     0.284440
 dtype: float64,N               12.000000
 mean             2.011608
 median           2.021611
 std              0.571872
 relative std     0.284313
 dtype: float64]

我想从具有最小相对标准值的列表中提取数据(N、均值、标准差、相对标准差)。上述列表的输出应如下所示:

 N               12.000000
 mean             2.011608
 median           2.021611
 std              0.571815
 relative std     0.284262
 dtype: float64

到目前为止我尝试了什么?

min(list)

但是抛出以下错误ValueError: The truth value of a Series is ambiguous. Use a.empty,a.bool(),a.item(),a.any() or a.all().

解决方法

使用 min 和 lambda 函数通过标签 Series 选择 std 的值:

s1 = pd.Series([0,1,2],index=['std','min','max'])
s2 = pd.Series([4,'max'])
s3 = pd.Series([0.8,'max'])

L = [s1,s2,s3]

s = min(L,key=lambda x:x.loc['std'])
print (s)
std    0
min    1
max    2
dtype: int64

为了测试所有的最小值:

print ([x.loc['std'] for x in L])
[0,4,0.8]

对于索引使用 np.argmin

import numpy as np
print (np.argmin([x.loc['std'] for x in L]))
0

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。