我有一个由两个初始列组成的数据框架:一列分析称为“分析1”,另一列与这些分析相关联的数字称为“数字1”
然后我添加了另一列,其中充满了如下所示的数字。我叫它“2号”
我想做的是创建一个名为“Analysis2”的新列。在本专栏中,我希望得到与“数字2”中的数字相对应的最后可用分析(包含在分析1中)
例如:
-第1行:数字80的最后可用分析是51,因此我在新列中写51
-第3行:数字81的最后可用分析是52,因此我在新列中写52
-第6行:数字82的最后可用分析是54,因此我在新列中写54
这应该是这样的:
我尝试使用mask()
是基于数字1等于数字2的条件,但它不起作用。事实上,正如你所看到的,这个条件并不总是满足的
你有什么办法解决我的问题吗?希望它足够清楚
编辑:我试图构建一个如下所示的功能:
def analyse_correction(analyse_nc,analyse_corrected,number):
df[analyse_corrected]=df[analyse_nc].mask(df['Number 1']!=df['Number 2'])
df[analyse_corrected].fillna(method='ffill',inplace=True)
df[analyse_corrected].fillna(method='bfill',inplace=True)
这个函数的问题是我使用的条件并不总是满足
试试这个:
输出:
相关问题 更多 >
编程相关推荐