我有一个pandas dataframe pmov,其中的SDRFT和DRFT列包含浮点值。某些DRFT值为0.0。当发生这种情况时,我想用SDRFT值替换DRFT值。出于测试目的,我将DRFT=0.0的行存储在dataframedf中。在
我试着定义函数:
def SDRFT_is_DRFT(row):
if row['SDRFT'] == row['DRFT']:
pass
elif row['SDRFT'] == 0:
row['SDRFT'] = row['DRFT']
elif ['DRFT'] == 0:
row['DRFT'] = row['SDRFT']
return row[['SDRFT','DRFT']]
并使用:df.apply(SDRFT_is_DRFT, axis=1)
返回:
^{pr2}$这不是我想要的结果。在
我也试过这个功能:
def drft_repl(row):
if row['DRFT']==0:
row['DRFT'] = row['SDRFT']
似乎对测向仪= 数据框应用(drft_repl,轴=1)
但是pmov.DRFT = pmov.apply(drft_repl, axis=1)
导致DRFT值100%替换为SDRFT值,除非DRFT值是nan。在
如何有条件地将一列中的单元格值替换为同一行的另一列中的值?在
试试这个:
我想你可以用^{} 。第一个用值
DRFT
替换列DRFT
,其中是条件True
,最后一个是用SDRFT
替换列DRFT
:另一个带有^{} 的解决方案:
^{pr2}$为了更好地测试
DataFrame
被更改:相关问题 更多 >
编程相关推荐