这是一个数据帧,其中每列的前缀为c
或s
c
表示一个类(是或否),而s
表示与该类相关的分数
cAGR cCON cEXT cNEU cOPN sAGR sCON sEXT sNEU sOPN
2157 y y y n y 4.17 3.67 4.33 2.00 4.40
2422 y n y n y 3.95 3.25 4.20 2.60 5.00
2741 y n n n y 4.00 3.00 2.75 2.50 4.75
2884 y y y n y 3.55 3.95 3.75 2.05 3.80
4830 n n n y y 3.05 3.05 3.40 2.80 4.35
4932 y n n y y 3.85 3.10 2.75 3.65 3.80
5611 y n n n y 3.65 3.25 2.80 1.60 4.15
5743 n y n y n 3.35 4.25 3.30 2.80 3.50
6360 y y n y y 3.85 4.35 3.20 3.60 4.80
6822 y y y n y 4.50 3.50 4.13 1.43 4.13
我试图根据同一类(y
或n
)中的sAGR
或n
来获取列(cAGR
)中的最小值和最大值,这样我就可以知道正类或负类中的最小值或最大值是多少,即这些值的范围
例如,在下面的代码中,我得到了值y
和n
在cAGR
中的最大值和最小值
有了这一点,我可以说{
下面的代码已经足够了,但它确实是重复的,我想知道是否有更好的方法来做到这一点
>>> df['sAGR'].where(df['cAGR'] == 'y').max()
4.5
>>> df['sAGR'].where(df['cAGR'] == 'y').min()
3.55
>>> df['sAGR'].where(df['cAGR'] == 'n').min()
3.05
>>> df['sAGR'].where(df['cAGR'] == 'n').max()
3.35
数据字典:
{'cAGR': {2157: 'y',
2422: 'y',
2741: 'y',
2884: 'y',
4830: 'n',
4932: 'y',
5611: 'y',
5743: 'n',
6360: 'y',
6822: 'y'},
'cCON': {2157: 'y',
2422: 'n',
2741: 'n',
2884: 'y',
4830: 'n',
4932: 'n',
5611: 'n',
5743: 'y',
6360: 'y',
6822: 'y'},
'cEXT': {2157: 'y',
2422: 'y',
2741: 'n',
2884: 'y',
4830: 'n',
4932: 'n',
5611: 'n',
5743: 'n',
6360: 'n',
6822: 'y'},
'cNEU': {2157: 'n',
2422: 'n',
2741: 'n',
2884: 'n',
4830: 'y',
4932: 'y',
5611: 'n',
5743: 'y',
6360: 'y',
6822: 'n'},
'cOPN': {2157: 'y',
2422: 'y',
2741: 'y',
2884: 'y',
4830: 'y',
4932: 'y',
5611: 'y',
5743: 'n',
6360: 'y',
6822: 'y'},
'sAGR': {2157: 4.17,
2422: 3.95,
2741: 4.0,
2884: 3.55,
4830: 3.05,
4932: 3.85,
5611: 3.65,
5743: 3.35,
6360: 3.85,
6822: 4.5},
'sCON': {2157: 3.67,
2422: 3.25,
2741: 3.0,
2884: 3.95,
4830: 3.05,
4932: 3.1,
5611: 3.25,
5743: 4.25,
6360: 4.35,
6822: 3.5},
'sEXT': {2157: 4.33,
2422: 4.2,
2741: 2.75,
2884: 3.75,
4830: 3.4,
4932: 2.75,
5611: 2.8,
5743: 3.3,
6360: 3.2,
6822: 4.13},
'sNEU': {2157: 2.0,
2422: 2.6,
2741: 2.5,
2884: 2.05,
4830: 2.8,
4932: 3.65,
5611: 1.6,
5743: 2.8,
6360: 3.6,
6822: 1.43},
'sOPN': {2157: 4.4,
2422: 5.0,
2741: 4.75,
2884: 3.8,
4830: 4.35,
4932: 3.8,
5611: 4.15,
5743: 3.5,
6360: 4.8,
6822: 4.13}}
您可以尝试
groupby
:输出:
奖金如果要使用其他后缀,请尝试
pd.wide_to_long
:输出:
相关问题 更多 >
编程相关推荐