如何将数据帧中特定行的“零”替换为“一”

2024-05-19 10:23:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧:df1

                    DP1       DP2       DP3      DP4      DP5      DP6    DP7     DP8  DP9  DP10
OP1             43239.0   46962.0   55858.0   9128.0  30372.0   5932.0  667.0   663.0  0.0   NaN
OP2               146.0      73.0   16647.0   5596.0   1493.0   7175.0   45.0   438.0  NaN   NaN
OP3            266279.0    1189.0       1.0  10939.0  17799.0   4702.0  235.0     NaN  NaN   NaN
OP4            360547.0   56943.0  142271.0  38217.0   1141.0   6757.0    NaN     NaN  NaN   NaN
OP5            380497.0   17946.0   19376.0      0.0   3974.0      NaN    NaN     NaN  NaN   NaN
OP6              6151.0   16525.0   17046.0  11532.0      NaN      NaN    NaN     NaN  NaN   NaN
OP7            142026.0   21999.0     820.0      NaN      NaN      NaN    NaN     NaN  NaN   NaN
OP8             76860.0  102580.0       NaN      NaN      NaN      NaN    NaN     NaN  NaN   NaN
OP9              6210.0       NaN       NaN      NaN      NaN      NaN    NaN     NaN  NaN   NaN
OP10                NaN       NaN       NaN      NaN      NaN      NaN    NaN     NaN  NaN   NaN
Total         1281955.0  264217.0  252019.0  75412.0  54779.0  24566.0  947.0  1101.0  0.0   0.0
Variance       160244.0   37745.0   42003.0  15082.0  13695.0   89.0  474.0  1101.0  NaN  -0.0
Mack's Sigma      400.0     194.0     205.0    123.0    117.0     90.0   22.0    33.0  NaN  -0.0 
Variance       160244.0   37745.0   42003.0  15082.0  13695.0   89.0  474.0  1101.0  NaN  -0.0

我想找到方差行最后两项的最小值。 我想最后两个条目并找到最小值,就像方差一样,最后两个条目是474.0和1101.0,应该添加到Nan位置

输出看起来像

Variance       160244.0   37745.0   42003.0  15082.0  13695.0   89.0  474.0  1101.0  474.0 -0.0

我尝试过以下代码:

minValuesObj = min(df1.loc('Variance'))

Tags: 数据条目nandf1方差variancedp1dp2
3条回答

使用^{}df.min

df1.iloc[-2, -2] = df1.iloc[-2, -4:-2].min()

请您使用^{}和离散元素概念尝试以下内容

import pandas as pd
df.loc['Variance','DP9'] = df.loc['Variance', ['DP7','DP8']].min()
df

输出如下:

                    DP1       DP2       DP3      DP4      DP5      DP6    DP7     DP8    DP9  DP10
OP1             43239.0   46962.0   55858.0   9128.0  30372.0   5932.0  667.0   663.0    0.0   NaN
OP2               146.0      73.0   16647.0   5596.0   1493.0   7175.0   45.0   438.0    NaN   NaN
OP3            266279.0    1189.0       1.0  10939.0  17799.0   4702.0  235.0     NaN    NaN   NaN
OP4            360547.0   56943.0  142271.0  38217.0   1141.0   6757.0    NaN     NaN    NaN   NaN
OP5            380497.0   17946.0   19376.0      0.0   3974.0      NaN    NaN     NaN    NaN   NaN
OP6              6151.0   16525.0   17046.0  11532.0      NaN      NaN    NaN     NaN    NaN   NaN
OP7            142026.0   21999.0     820.0      NaN      NaN      NaN    NaN     NaN    NaN   NaN
OP8             76860.0  102580.0       NaN      NaN      NaN      NaN    NaN     NaN    NaN   NaN
OP9              6210.0       NaN       NaN      NaN      NaN      NaN    NaN     NaN    NaN   NaN
OP10                NaN       NaN       NaN      NaN      NaN      NaN    NaN     NaN    NaN   NaN
Total         1281955.0  264217.0  252019.0  75412.0  54779.0  24566.0  947.0  1101.0    0.0   0.0
Variance       160244.0   37745.0   42003.0  15082.0  13695.0     89.0  474.0  1101.0  474.0  -0.0
Mack's Sigma      400.0     194.0     205.0    123.0    117.0     90.0   22.0    33.0    NaN  -0.0

使用^{}和最小值设置值(按位置选择,这意味着上一个标签Variance使用-2):

df1.iloc[-2, -2] = df1.iloc[-2, -4:-2].min()

或者可以使用^{}作为标签名称的位置:

pos = df1.index.get_loc('Variance')
df1.iloc[pos, -2] = df1.iloc[pos, -4:-2].min()

或者,如果需要按Variance选择,请使用^{}作为seelct by标签,对于动态列名称,请使用索引df1.columns

df1.loc['Variance', df1.columns[-2]] = df1.loc['Variance', df1.columns[-4:-2]].min()

                    DP1       DP2       DP3      DP4      DP5      DP6    DP7  \
OP1             43239.0   46962.0   55858.0   9128.0  30372.0   5932.0  667.0   
OP2               146.0      73.0   16647.0   5596.0   1493.0   7175.0   45.0   
OP3            266279.0    1189.0       1.0  10939.0  17799.0   4702.0  235.0   
OP4            360547.0   56943.0  142271.0  38217.0   1141.0   6757.0    NaN   
OP5            380497.0   17946.0   19376.0      0.0   3974.0      NaN    NaN   
OP6              6151.0   16525.0   17046.0  11532.0      NaN      NaN    NaN   
OP7            142026.0   21999.0     820.0      NaN      NaN      NaN    NaN   
OP8             76860.0  102580.0       NaN      NaN      NaN      NaN    NaN   
OP9              6210.0       NaN       NaN      NaN      NaN      NaN    NaN   
OP10                NaN       NaN       NaN      NaN      NaN      NaN    NaN   
Total         1281955.0  264217.0  252019.0  75412.0  54779.0  24566.0  947.0   
Variance       160244.0   37745.0   42003.0  15082.0  13695.0     89.0  474.0   
Mack's Sigma      400.0     194.0     205.0    123.0    117.0     90.0   22.0   

                 DP8    DP9  DP10  
OP1            663.0    0.0   NaN  
OP2            438.0    NaN   NaN  
OP3              NaN    NaN   NaN  
OP4              NaN    NaN   NaN  
OP5              NaN    NaN   NaN  
OP6              NaN    NaN   NaN  
OP7              NaN    NaN   NaN  
OP8              NaN    NaN   NaN  
OP9              NaN    NaN   NaN  
OP10             NaN    NaN   NaN  
Total         1101.0    0.0   0.0  
Variance      1101.0  474.0  -0.0  
Mack's Sigma    33.0    NaN  -0.0  

相关问题 更多 >

    热门问题